2016-09-23 6 views
0

Entity Framework v4를 사용하여 C#에서 모델 클래스 용 제네릭 getter를 만들고 싶습니다. 그게 가능하고 어떻게 구현하는지 나는 모른다. 당신에게 EntityFramework 모델의 일반 Getter

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

가 사전에 감사

답변

1

제네릭 타입을 정의하고 :

내가 직면하고있어 문제는 LINQ 쿼리 예를 들어

에 속성 이름을 매핑하는 방법입니다 속성으로 사용하려고합니다. 최선의 방법은 리플렉션을 사용하는 것입니다 (이름으로 속성을 얻을 수있는 다른 방법은 생각할 수 없습니다).

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 그것의 속성을 참조 할 수있다.