将嵌套类与实体框架一起使用

时间:2011-04-27 17:58:47

标签: c# .net entity-framework nested-class

我试图在设计师中做到这一点,但我无法弄明白。是否可以使用Entity Framework持久化嵌套类?

注意:我只是好奇这是否可能。在这一点上,我无法想象,是否有理由这样做,但知道如果可能的话可能会很好。

示例:

public class NormalClass
{
    public class NestedClass { }
}

更新

Danny Varod对如何做到这一点有一个好主意。当我有空闲时间时,我会尝试一下,我会在这里发布结果,除非其他人先到达。

2 个答案:

答案 0 :(得分:0)

.NET中的嵌套类与另一级命名空间中的类基本相同(接受内部类可以访问外部类的私有部分的事实,正如Ladislav Mrnka指出的那样 - 你可以使用内部而不是私有为了解决这个问题,行为没有变化(与Java不同),因此使用嵌套类没有多大意义。

您可以使用complex properties或使用导航属性定义子对象,但是,复杂属性具有有限的功能(没有导航属性或其中的键),并且都不会创建为嵌套类。

要强制EF使用嵌套类,您可以尝试自己创建类,然后使用Code-First方法映射它们,或者通过取消类的自动创建并自己编写(或更改.tt文件)创建嵌套的类,然后将.emdx编辑为xml,将实体映射到不同的类。

答案 1 :(得分:0)

EF类被声明为partial,因此您可以添加任何想要的内容。

请注意,内部类的属性不会持久保存到数据库中,如果需要,请改为使用导航属性。