質問

いう実行インタフェースのクラスのリストを格納するオブジェをつくりだす。たいのですが、リストリの実装クラスを定義する型のリスト:

public interface IEntity
{
    Guid EntityID { get; set; }
    Guid ParentEntityID{ get; set; }
    Guid RoleId { get; set; }

    void SetFromEntity();
    void Save();
    bool Validate();
    IQueryable<T> GetAll(); // That is what I would like to do
    List<Guid> Search(string searchQuery);
}
public class Dealer : IEntity
{
   public IQueryable<Dealer> GetAll() { }
}
役に立ちましたか?

解決

あなたはこのような何かをすることができます:

public interface IEntity<T>
{
    IQueryable<T> GetAll();
}

public class Dealer : IEntity<Dealer>
{
   public IQueryable<Dealer> GetAll() { }
}

他のヒント

あなただけのIEntityジェネリック自体にする必要があります。次いで、GETALL()の定義に型パラメータを使用します。

ここでは、あなたのコードを変更したい方法は次のとおりです。

public interface IEntity<TListItemType>
{
     // stuff snipped

     IQueryable<TListItemType> GetAll();
}

public class Dealer : IEntity<Dealer>
{
   public IQueryable<Dealer> GetAll() { // some impl here }
}

追加 Save(), Validate(), など。ロジックドメインのオブジェクト(すなどの Dealer あるかもしれません)を考えると、世界に違反する SRP.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top