实体框架OfType()动态

时间:2012-05-12 21:30:04

标签: c# entity oftype

你怎么做:

Type ty = Type.GetType("Student");
var students = db.People.OfType(ty);

以某种方式运作?

为什么?

我只以人/学生为例,这里有一个稍微详细的解释,说明我为什么要这样做。

我希望能够将邮政地址信息存储在与特定文化相关的关系结构中。我的想法是有一个基本类型:“地址”和它的继承类型,例如:“UK_Address”。那么我的“人物”实体就会有一个“地址”参考。我将特定地址类型的名称存储为Person类型中的字符串,并使用此名称来指示程序与地址交互时的行为。

如果这是有道理的!? :■

2 个答案:

答案 0 :(得分:0)

如果您正在寻找答案:

Type ty = ...
var students = db.People.OfType<ty>(); //Doesn't work, see below

然后我认为没有反思它会起作用。参见

IQueryable OfType<T> where T is a runtime Type

答案 1 :(得分:-1)

Type ty = typeof(Student); // tyopeof() is "safer" than Type.GetType()
var students = db.People.Where(x=>ty.IsAssignableFrom(x.GetType()));