2016-09-23 4 views
0

Entity Framework v4を使用して、C#でモデルクラス用の汎用ゲッターを作成したいと思います。それが可能かどうか、それをどう実装するかは分かりません。EntityFrameworkモデルの汎用ゲッター

私が直面してる問題は、例えば、LINQクエリで

を属性名をマッピングする方法である:

public static List<T> GetModelsByAttribute<T,R>(R attribute, string attributeName) 
    { 
     return new OracleTestConnection().T.Where(d => d.attributeName == att).ToList(); 
    } 

答えて

1

ジェネリックがタイプを定義し、あなた事前にありがとうそれをプロパティとして使用しようとしています。あなたの最良の賭けは、反射を使用しようとする可能性が高いです(名前でプロパティを取得できる他の方法は考えられません)。この場合

public static List<T> GetModelsByAttribute<T,R>(string propertyName, R attribute, string attributeName) where T : YourAttributeClass 
{ 
    var connection = new OracleTestConnection(); 
    var property = (List<T>)connection.GetType().GetProperty(propertyName).GetValue(connection, null); 
    return property.Where(d => d.attributeName == att).ToList(); // assuming your class YourAttributeClass has attributeName property 
} 

もしプロパティ名を渡す、およびプロパティはYourAttributeClass由来すると仮定すると、あなたは、LINQでのプロパティを参照することができます。

関連する問題