原始SQL查詢和實體框架核心

asp.net-core asp.net-core-mvc c# entity-framework-core

我將我的應用程序遷移到ASP.NET MVC Core和Entity Framework Core,我發現了問題。我有像這樣的實體的原始SQL查詢

var rawSQL = dbContext.Database.SqlQuery<SomeModel>("Raw SQL Query").ToList();

但是context.Database沒有SqlQuery<T> 。你有這個問題的解決方案嗎?

一般承認的答案

確保using Microsoft.Data.Entity;添加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);


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因