首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EFCore 3动态DbSet

EFCore 3动态DbSet
EN

Stack Overflow用户
提问于 2020-11-16 13:51:36
回答 1查看 247关注 0票数 0

我希望向我的DbSet类声明一个动态的DbContext,以便在不指定自定义类的情况下进行自定义原始查询,如下所示:

代码语言:javascript
复制
public partial class MyContext: DbContext
{
    public DbSet<dynamic> DynamicEntity { get; set; }

查询如下所示

代码语言:javascript
复制
List<dynamic> dynamicResult = await dbContext.DynamicEntity
.FromSqlInterpolated($@"
    select [col1], [col2], ...
    from table1
    ")
.ToListAsync();

这个配置似乎不起作用,因为我得到了运行时错误:

System.InvalidOperationException:在实体类型'object‘上定义的键{'TempId'} cis,而不是'MyCustomView’。

在没有其他库(如DynamicLinq)的情况下可以这样做吗?

EN

回答 1

Stack Overflow用户

发布于 2020-11-16 14:04:05

您不能像使用DbSet类型一样使用dynamic。

如果希望在EF中创建自定义SQL查询,可以使用ExecuteSqlCommand方法。

下面是一个示例:

代码语言:javascript
复制
using(var context = new SampleContext())
{
    var commandText = "INSERT Categories (CategoryName) VALUES (@CategoryName)";
    var name = new SqlParameter("@CategoryName", "Test");
    context.Database.ExecuteSqlRaw(commandText, name);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64859308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档