我在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查询的扩展程序?
答案 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();
}