2

您可以将存储过程添加到实体框架模型 ( Model.edmx) 中吗?

我刚刚在 Visual Studio 2010 中做到了,就像这样(除了我的存储过程现在不在“添加”选项卡中并且在“刷新”选项卡中)

VS 截图

我的存储过程是一个简单的SELECT语句,带 1 个参数。

VS2010似乎已经将它添加到模型中,但我想知道它在哪里以及如何使用它?

我在图表中的任何地方都看不到它Model.designer.cs

4

3 回答 3

9

你在那里分道扬镳。这是一个隐藏的过程并且是多步骤的。您必须通过在上面显示的菜单中选择它们来将存储过程包含在模型中。

完成后,您想查看“模型浏览器”

模型浏览器的图片

然后在模型浏览器中,找到模型存储(这将有像“表/视图”这样的文件夹)。右键单击您的存储过程并选择“添加函数导入”。

函数导入上下文菜单的图片

完成此操作后,您可以映射将从您的 SP 返回的实体。

函数导入对话框的图片

然后,您将能够通过代码中的上下文以强类型的方式访问您的实体。希望有帮助。

于 2012-11-21T04:46:04.100 回答
1

从模型图中,右键单击并选择模型浏览器(或View/Other Windows/Entity Data Model Browser从菜单中)。在 Model.Store 部分,您应该看到表/视图、存储过程/函数和约束。您的存储过程将位于存储过程/函数部分。

检查此链接以很好地解释如何将存储过程与 EF 一起使用:http: //msdn.microsoft.com/en-us/data/gg699321.aspx

于 2012-11-21T04:30:30.057 回答
1

补充上一个答案:

如果需要,不是实体,而是创建一个复杂类型(您可以在模型资源管理器的复杂类型文件夹中创建它)并将其关联到您的存储过程,如果您返回的数据对象与您的数据库表不匹配,例如:

http://img46.imageshack.us/img46/9168/j4ax.jpg

于 2013-08-20T12:36:26.087 回答