現在、私のコードは次のようなコードです: (簡略化されています!)
public static IQueryable<T> ListedProducts<T,V>(this IQueryable<T> collection)
where T : ProductCollection<V>
where V: Product
{
return collection.Where(x => x.Listed == true);
}
そしてそれを使用するには、次のように両方のタイプを定義する必要があります。
SomeCollection.ListedProducts<BikeCollection,BikeProduct>()
これが私が望む方法です:
私は何かlkieこれを書くことができるようにしたい:
public static IQueryable<T> ListedProducts<T<V>>(this IQueryable<T<V>> collection)
where T : ProductCollection<V>
{
return collection.Where(x => x.Listed == true);
}
私が書く必要がある場所:
SomeCollection.ListedProducts()
「SomeCollection」には、一般的な ListedProducts メソッドの両方のタイプが含まれているため、可能だと思います。
私の質問が十分に明確で、解決策があることを願っています:)
アップデート
私のコードの設定方法には多くのフラストレーションがあるようです。そのため、いくつかのクラスを以下に示します (簡略化)。
製品コレクション
public class ProductCollection<T> where T : Product
{
public int Id { get; set; }
public string CollectionName { get; set; }
public virtual ICollection<T> Products { get; set; }
public bool Listed { get; set; }
}
製品コレクション
public class BikeCollection : ProductCollection<BikeProduct>
{
//Bike specific properties
}