我将我的应用程序迁移到ASP.NET MVC Core和Entity Framework Core,我发现了问题。我有像这样的实体的原始SQL查询
var rawSQL = dbContext.Database.SqlQuery<SomeModel>("Raw SQL Query").ToList();
但SqlQuery<T>
中没有context.Database
。你有解决这个问题的方法吗?
答案 0 :(得分:12)
确保添加using Microsoft.Data.Entity;
因为你可以使用扩展方法。
var rawSQL = dbContext.SomeModels.FromSql("your SQL");
更好的是,使用原始SQL(存在SQL注入攻击的风险),这种FromSql方法允许您使用参数化查询,如:
dbContext.SomeModels.FromSql("SELECT * FROM dbo.Blogs WHERE Name = @p0", blogName);