【发布时间】:2013-03-13 15:51:56
【问题描述】:
我有两种类型 Person 和 Organization 都继承自 IContact。
我有一个基于某些逻辑返回其中一种类型的方法
private Type GetPersonOrOrganisation(string some variable)
{
either returns Person or Organisation type
}
我有一个方法可以查询数据库中的人员或组织:
public static IQueryable<T> Query<T>(this IUow uow) where T : IContact
{
return uow.Query<T>();
}
我的问题是如何使用从GetPersonOrOrganisation 返回的类型来调用查询。
这么说:
var contactType = GetPersonOrOrganisation(string some variable);
var contact = Query<contactType>();
其中contactType 可以是Person 或Organization。
显然这不会编译,这是我的问题。如何根据GetPersonOrOrganisation返回的内容从数据库中查询正确的类型。
【问题讨论】:
-
有什么原因没有 IContact GetPersonOrOrganisation(string some variable)?
-
是的,我需要调用查询的类型,因为查询方法需要类型不是该类型的实际对象。
标签: c#