2011-06-27 11 views
1

Entity Frameworkのデータベースから生成されたエンティティから、テーブル名、カラム名、IDを指定して汎用ゲッターとセッターを書く方法はありますか?テーブル名、カラム名、IDを指定した値の一般的なゲッターとセッター

一般的なゲッターは

擬似コードのようになります。

public T GetValue<T>(string tableName, string columnName, int id) 
{ 
    using(Entities context = new Entities()) 
    { 
     return (from t in context.tableName 
       where t has columnName && t.id == id 
       select t.columnName).First(); 
    } 
} 

public void SetValue<T>(string tableName, string columnName, T value, int id) 
{ 
... 
} 

答えて

3

それは間違いなく可能ですが、あなたはそうでない場合も、反射、手で少なくとも構築式に取得する必要があります。あなたのやり方も、適切なORMの大きな利点の1つであるいくつかのタイプ(およびタイプミス)安全性を失います。

さらに多くの表現とジェネリックを使用してこの問題を回避することはできますが、なぜこれをやりたいのですか?正直言って、これらの関数は私が実際に使っていると想像しているようなものではありません。

+0

ありがとうございます。私はまだ機能が働いていない。私は複数のテーブルを持っています。これらのテーブルの1つにはテーブル名と他のテーブルの主キーの列名の名前があり、さらに多くのテーブルがデータベースに追加されます。私の目標は、一般的なgetterとsetterにテーブル名、カラム名、およびidを文字列として書き込むことです。 – user566552

+0

私はADO.Netの新機能ですので、私の経験不足のために私を許してください。また、新しいテーブルがスキーマに追加されるときにエンティティを作成して、自分のエンティティデータモデルを更新できるかどうかを知りたいと思います。どうもありがとうございました。 – user566552

関連する問題