为什么Entity Framework Core不支持原始SQL查询?

时间:2019-11-06 10:59:15

标签: entity-framework entity-framework-core

我在asp.net应用程序中使用实体框架6,并使用如下原始查询:

string studentName = ctx.Database.SqlQuery<string>(
         "Select studentname from Student where studentid=1").FirstOrDefault();

现在,我将应用程序移至asp.net核心,但是如果不使用DbSet类型,就找不到原始SQL查询。

var students = context.Students
                  .FromSql("Select * from Students where Name = 'Bill'")
                  .ToList();

但这不能解决我的解决方案。

是否有开发用于运行sql查询的扩展程序?

2 个答案:

答案 0 :(得分:0)

您可以在此处使用扩展方法为您的类型创建临时DbContext:https://github.com/aspnet/EntityFrameworkCore/issues/1862#issuecomment-451671168

答案 1 :(得分:-1)

我从official documentation获得了以下信息:

  

DbSet上的SqlQuery方法允许编写原始SQL查询,该查询将返回实体实例。上下文将跟踪返回的对象,就像它们是由LINQ查询返回的情况一样。例如:

using (var context = new BloggingContext())
{
    var blogs = context.Blogs.SqlQuery("SELECT * FROM dbo.Blogs").ToList();
}