2012-02-18 80 views
0

我想执行一个层超类型图案((POEAA)使用EF 4.x的时实体框架4.x和层超类型

假设我有命名实体的层超类,从该两个类教师和学生继承。

类人是这样定义的

class Entity 
{ 
    public int Id {get;set;} 
} 

和教师和学生这样

class Teacher : Entity 
{ 
    publix string Name {get;set;} 
} 

class Student : Entity 
{ 
    public int Age {get;set;} 
} 

如何配置EF 4.x,以便在我的数据库中,我只有两张对应于教师和学生的表格?我试图使用TPC继承策略来映射此结构,但它不适合,它为每个具体类创建三个表。

使用NHibernate,这种情况相当普遍,处理得很好,我意思是如果我只为Person和Student创建映射,数据库将只有两个表,我不必显式实现任何继承startegy。

感谢您的建议

Riana

回答

0

的充分利用Entity类抽象

public abstract class Entity 
{ 
    public int Id {get;set;} 
} 

public class Teacher : Entity 
{ 
    publix string Name {get;set;} 
} 

public class Student : Entity 
{ 
    public int Age {get;set;} 
} 
+0

你好,谢谢你的回答。按照您所说的使用TPC创建实体类“抽象”是解决方案!我首先尝试了这种方法,但它并不奏效,EF说它无法找到Key属性,而这实际上就是我的问题。 EF没有找到关键的属性,因为我为Entity类创建了一个私有集合......它与NHibernate一起使用而不是EF。无论如何,谢谢你的回答! – 2012-02-18 09:48:42