【发布时间】:2016-01-08 10:27:45
【问题描述】:
我看过其他一些关于此的帖子,但似乎没有一个答案有帮助。我正在尝试将存储过程添加到 EDMX。我打开图表,单击鼠标右键,然后选择“从数据库更新模型”。我选择“是”以包含敏感数据,并取消选中“在 App.config 中保存连接设置”。 (这个 EDMX 在一个唯一目的是容纳这个 EDMX 的类库中)。我单击下一步,然后选择“添加”选项卡。我展开“存储过程和函数”,然后找到并单击我的存储过程的复选框。我只勾选“将选定的存储过程和函数导入实体模型”,然后单击“完成”。我收到的错误是:
An exception of type 'System.ArgumentException' occurred while attempting to update from the database. The exception message is 'Identifier is null or empty!".
我保存图表。我在整个解决方案中搜索我的 proc 的名称,它只存在于试图调用它的代码中 - EDMX 中没有实例。
存储过程定义如下所示:
ALTER Procedure [dbo].[spGetCountableResult]
@PatientId BIGINT
AS
我的连接字符串如下所示:
<add name="DB_Entities" connectionString="metadata=res://*/Models.DBContext.csdl|res://*/Models.DBContext.ssdl|res://*/Models.DBContext.msl;provider=System.Data.SqlClient;provider connection string="data source=DB.com;initial catalog=MyDb;user id=MyUser;password=MyPassword;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
我的 package.config 条目是:
<package id="EntityFramework" version="6.1.3" targetFramework="net45" />
有人知道这里出了什么问题吗?
V
【问题讨论】:
-
我遇到了同样的问题。最后,我能够通过删除一些存储过程来制造一种解决方法,直到 EF 将其导入;替换已删除的存储过程部分,然后从数据库中刷新模型。该过程的“违规”部分是完全合法的,并且适用于其他存储过程就好了:(
标签: entity-framework edmx