gpt4 book ai didi

c# - 实体模型中可以使用私有(private) setter 吗?

转载 作者:可可西里 更新时间:2023-11-01 07:54:45 25 4
gpt4 key购买 nike

我刚开始使用 Entity Framework,我担心主键是否容易被覆盖。我知道我可以在我的 Controller 中保护这个模型(我将 WebAPI 与 ASP.NET MVC 5 结合使用),但我想知道是否有可能阻止任何人通过注释或其他方式从模型本身设置我的模型的 ID?

基本上我可以这样做:

public int ID { get; private set; }

或类似的东西,在 EF6 模型中?

如果这很容易通过 Google 找到,那么我不知道要搜索的术语。我找不到任何能真正回答这个问题的东西。

最佳答案

是的,你可以,它应该工作得很好。每this blog post作者 Julie Lerman(他是 Microsoft 的 Entity Framework MVP,因此我强烈建议您在 EF 之旅中阅读她的博客!):

Entity Framework requires a parameterless constructor in order to materialize objects returned from queries (or loading). I have made this concession in my class but notice that it is a private constructor. So I’m still protecting my class. Nobody can access it. But EF is still able to populate this class when I execute queries. And no, I’m not doing some magic to tell EF to use my public constructor. It really uses the private constructor.

关于c# - 实体模型中可以使用私有(private) setter 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26768695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com