【问题标题】:MVC Entity Framework calling stored procedureMVC 实体框架调用存储过程
【发布时间】:2015-07-23 13:08:23
【问题描述】:

我正在使用 ASP.NET MVC 4.5 和 EF。我将存储过程导入到我的 ADO.NET 实体数据模型中。我有我的.edmxXX.tt 和我的StoreProcedure_Result.cs

我用

var result = dbcontext.SP(Param).AsEnumerable().First();

我的问题是那些有

select count(id) as Count from table

没有出现在我的SP_Result.cs

有什么想法吗?

【问题讨论】:

  • 我会打开 .edmx 文件和“从数据库更新模型”,并确保选择要添加或刷新的存储过程。
  • 我做到了。我的存储过程出现在我的 .edmx 上,但它没有出现在我的 _Result.cs 上...此外,如果我更改它,并输入“从表中选择 id”而不是“从表中选择计数(id)”......它出现在我的_results.cs 上。它似乎不喜欢“count()”语法..
  • 您是否尝试过调用存储过程?在这些情况下,可能不会创建“_Result.cs”类,因为它只是一个 int。 EF 可能不会费心创建一个专用类型来表示一个 int。这是我最好的猜测。

标签: asp.net-mvc entity-framework stored-procedures ado.net-entity-data-model


【解决方案1】:

我自己尝试过,但没有看到为仅返回 count() 的存储过程创建了“_Result.cs”类。我猜测不需要创建 _Result.cs 类,因为它只是一个 int,不需要特定类型。不过,我仍然可以调用 sproc。你可以像这样获得 int...

var result = db.getCount().First(); 
int i = (int)result; 

【讨论】:

  • 好的,但在这种情况下,当我调用“var result = dbcontext.SP(Param).AsEnumerable().First();”时我在哪里从 SP 获得结果 count()?
  • 这对我来说很好用... var result = db.getCount().First(); int i = (int)result;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多