我试图在设计师中做到这一点,但我无法弄明白。是否可以使用Entity Framework持久化嵌套类?
注意:我只是好奇这是否可能。在这一点上,我无法想象,是否有理由这样做,但知道如果可能的话可能会很好。
示例:
public class NormalClass
{
public class NestedClass { }
}
更新
Danny Varod对如何做到这一点有一个好主意。当我有空闲时间时,我会尝试一下,我会在这里发布结果,除非其他人先到达。
答案 0 :(得分:0)
.NET中的嵌套类与另一级命名空间中的类基本相同(接受内部类可以访问外部类的私有部分的事实,正如Ladislav Mrnka指出的那样 - 你可以使用内部而不是私有为了解决这个问题,行为没有变化(与Java不同),因此使用嵌套类没有多大意义。
您可以使用complex properties或使用导航属性定义子对象,但是,复杂属性具有有限的功能(没有导航属性或其中的键),并且都不会创建为嵌套类。
要强制EF使用嵌套类,您可以尝试自己创建类,然后使用Code-First方法映射它们,或者通过取消类的自动创建并自己编写(或更改.tt文件)创建嵌套的类,然后将.emdx编辑为xml,将实体映射到不同的类。
答案 1 :(得分:0)
EF类被声明为partial
,因此您可以添加任何想要的内容。
请注意,内部类的属性不会持久保存到数据库中,如果需要,请改为使用导航属性。