为每个实体类型简化重复的代码是如何编写这个泛型类型的C#代码片段?
public IList<entity1> GetEntity1(.. query params ..)
{
IQueryable<entity1> query = context.entity1;
query = from refDataType in query
where refDataType.Id > 0
select refDataType;
.
. plus more changes to query same for each entity
.
return query.ToList();
}
我想创建一个用于创建查询的通用功能,但不知道如何去做?
即在下面的代码片段中,如何为ReturnAGenericQuery编码?
public IList<entity1> GetEntity1(.. query params ..)
{
IQueryable<entity1> query = context.entity1;
query = ReturnAGenericQuery of type entity1
return query.ToList();
}
public IList<entity2> GetEntity2(.. query params ..)
{
IQueryable<entity2> query = context.entity2;
query = ReturnAGenericQuery of type entity2
return query.ToList();
}
private IQueryable<T> ReturnAGenericQuery<T>()
{
return IQueryable of entity1 or entity2
}
这将不会编译(即使你给'源'和'查询'相同的名称),直到你给该方法一个第二类型参数。 'result'是IQueryable,它与实体类型T不一样。 –
2009-07-24 13:09:32
有一个'AsQueryable()'丢失,并且在我的查询中有一个错字,但除此之外,这个编译很好...增加了一些更详细的内容,以便绝对清楚。 – jerryjvl 2009-07-24 15:12:21