问题 私有制定者可以在实体模型中使用吗?


我刚刚开始使用Entity Framework,我担心主键可以被轻松覆盖。我知道我可以在我的控制器中保护这个模型(我正在使用带有ASP.NET MVC 5的WebAPI),但我想知道是否有可能阻止任何人通过注释或其他东西从模型本身设置我的模型的ID?

基本上我可以这样做:

public int ID { get; private set; }

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

如果这很容易通过谷歌找到,那么我不知道要搜索的条款。我找不到任何真正能解决这个问题的东西。


7305
2017-11-05 22:51


起源

看起来你可以。我刚用asp.net网站上的Mvc Movie教程应用程序试了一下。如果您不确定它是否可行并且Google搜索失败,请尝试一下!但问问题也不会造成伤害:P。 - John Odom
我,我应该。我只想在其上看到一些文档,并希望这个问题能够让它在下次有人看来时生活。如果可以,请添加答案。谢谢! - OneHoopyFrood


答案:


是的,你可以,它应该工作得很好。每 这篇博文 作者:Julie Lerman(微软的实体框架MVP,所以我强烈建议你在EF的旅途中阅读她的博客!):

实体框架需要一个无参数构造函数   实现从查询(或加载)返回的对象。我做了   我班上的这个让步但注意到它是私人的   构造函数。所以我还在保护我的班级。没有人可以访问它。   但是当我执行查询时,EF仍然能够填充这个类。   不,我没有做一些魔术告诉EF使用我的公众   构造函数。它确实使用私有构造函数。


15
2017-11-05 23:00



Julie Lerman是我对这类事情的自动追求。我真的只是搜索“Julie Lerman私人套装”,甚至不知道她是否已经谈过它。 - IronMan84