【问题标题】:Return count using raw query, using Entity Framework and MVC使用原始查询、使用实体框架和 MVC 返回计数
【发布时间】:2012-04-26 14:46:28
【问题描述】:

我在 MVC 网站中使用实体框架

我正在尝试使用原始查询获取记录数。

我正在寻找类似的东西,但任何人都会对任何解决方案感到满意。

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

var total = _context.Database.SOMETHING(sql)

我意识到对于这样一个简单的场景,原始查询可能不是可行的方法,但实际上,sql 字符串要复杂得多,因此使用 Linq to SQL 几乎是不可能的。

【问题讨论】:

  • _context的类型是什么? DbContext, DataContext, ObjectContext ?
  • @nemesv。它是一个 DbContext(抱歉,它没有意识到实体框架可以有不同的东西——我显然是这个游戏的新手)。知道它是 DbContext 是否意味着您可以帮助我?

标签: sql-server asp.net-mvc entity-framework


【解决方案1】:

您可以先使用SqlQuery 方法使用EF 代码进行execute raw SQL 查询:

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

【讨论】:

  • 太棒了!在我将最后一行更改为 var total = _context.Database.SqlQuery(sql).single();
  • 但我必须使用如下动态,var sql = "SELECT * FROM dbo.Articles";动态总计 = _context.Database.SqlQuery(sql).ToList(); .....这可能吗??
猜你喜欢
  • 2021-06-26
  • 2015-06-16
  • 1970-01-01
  • 2018-01-11
  • 2016-05-20
  • 1970-01-01
  • 1970-01-01
  • 2021-04-26
  • 2021-03-02
相关资源
最近更新 更多