我希望向我的DbSet类声明一个动态的DbContext,以便在不指定自定义类的情况下进行自定义原始查询,如下所示:
public partial class MyContext: DbContext
{
public DbSet<dynamic> DynamicEntity { get; set; }查询如下所示
List<dynamic> dynamicResult = await dbContext.DynamicEntity
.FromSqlInterpolated($@"
select [col1], [col2], ...
from table1
")
.ToListAsync();这个配置似乎不起作用,因为我得到了运行时错误:
System.InvalidOperationException:在实体类型'object‘上定义的键{'TempId'} cis,而不是'MyCustomView’。
在没有其他库(如DynamicLinq)的情况下可以这样做吗?
发布于 2020-11-16 14:04:05
您不能像使用DbSet类型一样使用dynamic。
如果希望在EF中创建自定义SQL查询,可以使用ExecuteSqlCommand方法。
下面是一个示例:
using(var context = new SampleContext())
{
var commandText = "INSERT Categories (CategoryName) VALUES (@CategoryName)";
var name = new SqlParameter("@CategoryName", "Test");
context.Database.ExecuteSqlRaw(commandText, name);
}https://stackoverflow.com/questions/64859308
复制相似问题