我正在尝试创建一个通用类,我可以在其中传递两个表并返回第一个表。这两个变量是我用来连接 linq 查询中的表的字符串值。我想要返回的是一个 IQueryable 值,但它一直返回一个 DataQuery 值。
这在我的 MVC 视图中失败并出现错误“方法'System.Reflection.PropertyInfo GetProperty(System.String)'没有支持的 SQL 转换”
下面的代码:
var result = GetTable<Table1, Table2>("Table1id", "Table2id");
public virtual IQueryable<T> GetTable<T, A>(string table1Variable,
string table2Variable)
where T : class
where A : class
{
var table1 = entityDatabaseDC.GetTable<T>();
var table2 = entityDatabaseDC.GetTable<A>();
return from entity in table1.AsQueryable()
join entity2 in table2 on entity.GetType().GetProperty(table1Variable)
equals entity2.GetType().GetProperty(table2Variable)
select entity;
}
它适用于单个表:
var result = repository.GetTable<Table1>();
public virtual IQueryable<T> GetTable<T>() where T : class
{
return entityDatabaseDC.GetTable<T>();
}
我想知道我正在尝试的是否可行。