![]() |
1
6
这是针对代码优先的POCO对象的,用于帮助Shimmy和其他想知道如何首先处理代码的人。 我认为您可能不理解实体框架是如何工作的。这也花了我一段时间来理解。 实体框架通过使用代理类对POCO对象进行子类化来工作,代理类用于序列化和反序列化对象。这意味着,如果您有一个私有的set方法或属性(或者它全部丢失),则子类方法无法设置该属性。希望实体框架使用的setter和属性必须是受保护的或公共的。 如果您希望延迟加载复杂的属性,那么还必须使这些属性成为虚拟的,这样实体框架也可以代理这些属性。如果您希望预先加载它们,则必须使用include方法。 要完全回答您的问题,是的,您必须将setter属性添加到您希望Entity Framework为您设置的所有属性中。不,实体框架不提供映射没有setter的属性的方法。 nhibernate的工作方式有点不同,它覆盖了所有的属性,我相信它在它生成的子类中使用私有变量,设置私有变量,然后被覆盖的属性返回私有变量。也就是说,nhibernate不需要在属性本身上设置setter,而实体框架实际上设置了属性。这样做对实体框架的好处是它返回您创建的实际POCO对象,而不是像nhibernate这样的子类对象。获得子类对象的唯一时间是使用延迟加载的复杂属性时,实体框架返回代理子类。当您实际检索数据时,代理会再次将自己设置为POCO类。 你的设置者应该是公开的或受保护的,就像你有问题一样:
|
![]() |
2
5
我玩过这个小游戏,我的结论是:
|
![]() |
Wall-E · 数组中满足条件的映射位置 7 年前 |
![]() |
Leth · 字符串串联functoid不将映射值返回到目标记录 7 年前 |
![]() |
Lonewolf · 探索在R中编写代码的更好方法 7 年前 |
![]() |
Jim.W · 来自多个列的网络映射? 7 年前 |
![]() |
JimminyCricket · 绘制坐标ggmap的问题 7 年前 |
![]() |
Jason Strimpel · 三个列表压缩成一个目录列表 7 年前 |
![]() |
Igal · 从数组创建对象[关闭] 7 年前 |
![]() |
John U · 使用mapdist函数计算R中邮政编码之间的距离 7 年前 |
![]() |
user9196877 · 根据状态需要填充图标? 7 年前 |