2011-07-18 7 views
1

FetchAllData、GetbyIDなどの一般的なリポジトリを使用しています...とにかく、Deactivate(T Entity)メソッドを含めると、データを削除する代わりに、ステータスをオフにしてユーザーにデータが表示されないようにしますが、必要なときはいつでも表示できます。基本的には、のようなもの:MVCジェネリックリポジトリ共通dataColumn

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

Lol、同時に同じ回答を投稿します。面白いのは、あなたは同じインターフェース名をとることです;) – dknaack