使用原始查询返回计数,使用Entity Framework和MVC

Pet*_*ies 27 sql-server asp.net-mvc entity-framework

我在MVC网站上使用Entity Framework

我试图获取使用原始查询的记录数.

我正在寻找这些方面的东西,但任何人都会满意任何解决方案.

var sql = SELECT COUNT(*) FROM dbo.Articles WHERE (CategoryID = 3)

var total = _context.Database.SOMETHING(sql)
Run Code Online (Sandbox Code Playgroud)

我意识到,对于这样一个简单的场景,原始查询可能是不走,但在现实的方式,SQL字符串是更加复杂,以至于它几乎是不可能的使用LINQ到SQL.

nem*_*esv 55

您可以使用SqlQuery方法首先使用EF代码执行原始SQL查询:

var sql = "SELECT COUNT(*) FROM dbo.Articles WHERE (CategoryID = 3)";
var total = _context.Database.SqlQuery<int>(sql).First();
Run Code Online (Sandbox Code Playgroud)

  • 辉煌!我将最后一行更改为var total = _context.Database.SqlQuery <int>(sql).single(); (7认同)