Entity framework 如何使用实体框架4的继承来确定实体的子类型?
我刚刚开始有史以来第一次使用EntityFramework4。到目前为止,我很喜欢它,但对于如何正确地进行继承,我有点困惑 我正在使用模型优先的方法,我的Person实体有两个子类型实体,Employee和Client。EF正确地使用了每种类型表的方法,但是我似乎不知道如何确定特定对象是什么类型的人 例如,如果我做了类似的事情Entity framework 如何使用实体框架4的继承来确定实体的子类型?,entity-framework,inheritance,entity-framework-4,Entity Framework,Inheritance,Entity Framework 4,我刚刚开始有史以来第一次使用EntityFramework4。到目前为止,我很喜欢它,但对于如何正确地进行继承,我有点困惑 我正在使用模型优先的方法,我的Person实体有两个子类型实体,Employee和Client。EF正确地使用了每种类型表的方法,但是我似乎不知道如何确定特定对象是什么类型的人 例如,如果我做了类似的事情 var people = from p in entities.Person select p; return people.ToList<Person>()
var people = from p in entities.Person select p;
return people.ToList<Person>();
var people=来自实体中的p。人员选择p;
返回人。ToList();
在我由此形成的列表中,我只关心Id字段,所以我不想实际查询所有子类型表(这是一个带有链接的网页列表,所以我只需要姓名和Id,全部在Persons表中)
但是,我想使用这一查询形成不同的列表,每种类型的人一个(因此一个列表用于客户,另一个列表用于员工)
问题是,如果我有一个Person实体,如果不直接查询Client或Employee表,我就无法确定该实体是客户还是员工。如何在不执行大量其他数据库查询的情况下轻松确定实体的子类型?在查询中使用.OfType()
仅获取客户端。看
e、 g.实体.Person.OfType()
使用is
测试Person对象是否是特定的子类,例如if(p是Employee).
顺便说一句,为什么它不是实体。人?您没有选择多元化选项吗?太好了,不知道“是”检查在这种情况下会起作用!谢谢作为旁注,我没有做多元化,因为这只是一个简单的例子,我不需要描述我所有的实体都意味着什么,我也不知道它会正确地将人与人多元化:)