【问题标题】:Why won't EF4 generate a method to support my Function Import?为什么 EF4 不生成支持我的函数导入的方法?
【发布时间】:2011-08-18 18:16:14
【问题描述】:

我的数据库中有一个存储过程,它返回一个整数。我在我的模型中添加了一个函数导入。这出现在 EDMX 文件中:

 <Function Name="GetTotalEntityCount" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo" />

但是,实际上并没有为此生成任何方法。应该是顶级吧?

 using (MyContext context = new MyContext())
 {
     context.MyMethodShouldBeRightHere();
 }

Intellisense 中什么都没有出现,我浏览了 Designer.cs 文件,里面什么都没有,反映了 DLL……什么都没有。代码生成器只是没有生成任何代码来支持这个存储过程。

我在我的数据库中添加了另一个表并更新了模型,那个进来了,所以模型更新,它只是专门忽略了这个存储过程。

我已经尝试了所有我能想到的东西,并且查阅了我能找到的所有资源,并且尽我所知,我做的一切都是正确的。

我使用的是 EF4,数据库优先。 (无论如何,我很确定版本。这显示在生成的文件中:

Runtime Version:4.0.30319.1

)

【问题讨论】:

  • 所以你有没有从模型更新数据库(勾选存储过程),进入模型浏览器,在那里看到存储过程,右键单击,添加功能导入。你都做到了吗?
  • 查看 Andiih 回答下的评论。
  • 我也有同样的问题。标量函数显示在模型浏览器的存储部分中的存储过程下,但不在类型部分中。我尝试添加函数导入,但它没有显示在存储过程下拉列表中。这是来自 MSFT 的Answer(非常没用),用于类似的问题。感谢这方面的任何帮助。谢谢

标签: entity-framework entity-framework-4


【解决方案1】:

您在模型浏览器中看到 GetTotalEntityCount 了吗?假设您这样做,右键单击它并选择添加函数导入并将其映射到标量类型。 (假设你没有完成这一步)

【讨论】:

  • 不,既然你提到了,我在模型浏览器中看不到它。我看到的只有我的桌子。但是,当我从数据库中更新模型时,存储的 proc 不再存在,它在 XML 文件中,所以它必须进来。我必须做一些特别的事情才能看到它吗?如果我右键单击并说“添加 > 函数导入..”,则存储的过程在下拉列表中。
猜你喜欢
  • 2015-09-22
  • 1970-01-01
  • 2015-07-10
  • 1970-01-01
  • 2013-06-29
  • 1970-01-01
  • 2021-03-04
  • 2013-08-11
  • 1970-01-01
相关资源
最近更新 更多