实体模型中可以使用私有设置器吗
本文关键字:设置 可以使 实体模型 | 更新日期: 2023-09-27 18:29:29
我刚开始使用实体框架,我担心主键是否容易被重写。我知道我可以在我的控制器中保护这个模型(我使用的是带有ASP.NET MVC 5的WebAPI),但我想知道是否有可能阻止任何人通过注释或其他方式从模型本身设置我的模型的ID?
基本上我可以这样做:
public int ID { get; private set; }
或者类似的东西,在EF6模型中?
如果这很容易通过谷歌找到,那么我不知道该搜索哪些术语。我一直找不到任何真正能回答这个问题的东西。
是的,你可以,它应该可以正常工作。根据Julie Lerman的这篇博客文章(她是微软实体框架MVP,所以我强烈建议你在EF之旅中阅读她的博客!):
实体框架需要无参数构造函数才能具体化查询(或加载)返回的对象。我做了这是我班上的让步,但请注意,这是私人的构造函数。所以我仍然在保护我的班级。没有人可以访问它。但是EF仍然能够在我执行查询时填充这个类。不,我不是在变魔术告诉EF使用我的公众构造函数。它确实使用了私有构造函数。