我想實現一個通用的存儲庫,並且它失敗,因爲沒有從DBML對象到通用實體的隱式轉換。我不知道如何使IEML從IEntity繼承DBML對象,或者甚至是解決方案。通用存儲庫實現失敗,IEntity約束
下面是我使用的接口和存儲庫簽名。
public interface IEntity
{
int ID { get; }
}
public interface IRepository<T> : IDisposable
{
....
}
public class Repository<T> : IRepository<T> where T : class, IEntity
{
....
}
這是Model類。它在第9行出現錯誤(下面),其中存儲庫類的實例在構造函數中實例化。這只是在將IEntity約束添加到Repository類後纔開始發生的。
public class MyModel
{
DataContext DC;
Repository<MyType> MyRep;
public MyModel()
{
DC = new DataContext("ConnStr");
MyRep = new Repository<MyType>(DC);
}
}
這裏是錯誤:類型不能用作泛型類型或方法中的類型參數'T'。沒有從'MyType'到'IEntity'的隱含參考轉換
在此先感謝您的幫助。
對,但是我該如何製作一個從自動生成的代碼創建的DBML類型實現IEntity? – Hoodlum
哦,忘了其餘的。編輯答案! –
在DBML文件中,我需要添加該語句嗎?在dbml.layout或designer.cs文件中? – Hoodlum