2011-07-18 97 views
1

我有一個通用的存儲庫,我用於常見的東西,如FetchAllData,GetbyID等...無論如何,我想包括一個Deactivate(T Entity)方法,以便刪除數據,而不是我將只是把他們關閉狀態,以便用戶不會看到數據,但我可以隨時查看。基本上類似於:MVC通用存儲庫通用數據列

public interface IGenericRepository<T> where T : class { 
    ...somecode 
} 

public class GenericRepository<T> : IGenericRepository<T> where T : class { 
    public T GetbyID(int id) { ... } 

    public void Deactivate(T entity) { 
     entity.stat = 0; // I know that this stat is common in all tables. However, 
         // my problem is that I don't know how to make appear stat 
         // in IntelliSense. 
    } 
} 

我知道這可以完成,但我該怎麼做呢?

回答

1

聲明一個接口:

public interface IDeactivatable { 
    int stats { get; set; } 
} 

那麼你的實體必須從IDeactivatable派生。

提示:您可以添加一個泛型類型約束太:

[...] IGenericRepository<T> where T : class, IDeactivatable [...] 
+0

好,我已經做了,但仍然沒有工作。你能更具體請 – Shaokan

+0

好吧,謝謝,現在它的工作:)我會任命你的答案作爲正確的答案,每當時間限制消失 – Shaokan

+0

洛爾,你發佈同一個答案在同一時間...該死;)有趣的是你採用相同的接口名稱;) – dknaack