質問
いう実行インタフェースのクラスのリストを格納するオブジェをつくりだす。たいのですが、リストリの実装クラスを定義する型のリスト:
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.
所属していません StackOverflow