在尝试使用LinQ的SQL查询时遇到了一个小问题。
我收到的对象如下:
public class Entity {
public int EntityId { get; set; }
public string TableName { get; set; }
}
基本上我需要运行一个类似于此的脚本..
var entityQuery = _context.Database.SqlQuery<T>("SELECT * FROM [dbo].[" + TableName + "] WHERE [Id]=" + EntityId).ToList();
现在问题是我只能从“TableName”属性知道对象“T”的类型。我如何能够实例化该类以传递它而不是T?
谢谢:)
对于那些感到困惑的人来说,这就是我正在研究的方法:
public void ModifyData(Entity item)
{
var table = item.TableName;
var id = item.EntityId;
var entityQuery = _context.Database.SqlQuery<T>("SELECT * FROM [dbo].[" + table + "] WHERE [Id]=" + id ).ToList();
//more code below;
}
有不同的方法吗?
答案 0 :(得分:0)
为什么要传递tableName?在“int tableName”中也是如此?为什么不使用传入的实体类型? 好吧无论如何,你可以尝试这样的事情:
Install-Package System.Linq.Dynamic
注意:您可能需要安装:var data = _dbContext.Set(type).AsNoTracking().AsQueryable();
在您的情况下,您可以直接使用
git commit