我刚刚开始使用Entity Framework,我担心主键可以被轻松覆盖。我知道我可以在我的控制器中保护这个模型(我正在使用带有ASP.NET MVC 5的WebAPI),但我想知道是否有可能阻止任何人通过注释或其他东西从模型本身设置我的模型的ID?
基本上我可以这样做:
public int ID { get; private set; }
或类似的东西,在EF6模型?
如果这很容易通过谷歌找到,那么我不知道要搜索的条款。我找不到任何真正能解决这个问题的东西。
我刚刚开始使用Entity Framework,我担心主键可以被轻松覆盖。我知道我可以在我的控制器中保护这个模型(我正在使用带有ASP.NET MVC 5的WebAPI),但我想知道是否有可能阻止任何人通过注释或其他东西从模型本身设置我的模型的ID?
基本上我可以这样做:
public int ID { get; private set; }
或类似的东西,在EF6模型?
如果这很容易通过谷歌找到,那么我不知道要搜索的条款。我找不到任何真正能解决这个问题的东西。
是的,你可以,它应该工作得很好。每 这篇博文 作者:Julie Lerman(微软的实体框架MVP,所以我强烈建议你在EF的旅途中阅读她的博客!):
实体框架需要一个无参数构造函数 实现从查询(或加载)返回的对象。我做了 我班上的这个让步但注意到它是私人的 构造函数。所以我还在保护我的班级。没有人可以访问它。 但是当我执行查询时,EF仍然能够填充这个类。 不,我没有做一些魔术告诉EF使用我的公众 构造函数。它确实使用私有构造函数。