簡体繰り返しコードは、私は、クエリを作成する一般的な関数を作成したかったが、それについて移動する方法がわからないこのジェネリック型の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
}
メソッドに2番目の型パラメータを渡すまで、これはコンパイルされません( 'source'と 'query'に同じ名前を付けても)。 'result'はエンティティタイプTと同じではないIQueryableです。 –
'AsQueryable()'が見つかりませんでした。クエリに誤字がありましたが、 ...絶対に明確になるようにもっと詳細を加えました。 – jerryjvl