EntityFramework 型号的通用 Getter

Generic Getter for EntityFramework models

使用 Entity Framework v4,我想在 C# 中为我的模型 类 创建一个通用的 getter。我不知道这是否可行以及如何实现它。

我面临的问题是如何在 Linq 查询中映射属性名称

例如:

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

提前致谢

泛型定义了一个类型,而您正在尝试将其用作 属性。您最好的选择可能是尝试使用反射(我想不出任何其他方法可以通过名称获得 属性)。

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 中引用它的属性。