Jef*_*eff 54 stored-procedures entity-framework visual-studio-2008
我使用.NET 3.5 SP1,VS 2008与实体框架.我最初在我的模型中添加了一个存储过程,它带有2个参数.后来,我改变了sproc只需要1个参数.我运行了Update Model From Database菜单选项并确认我的sproc已列在Refresh选项卡中.完成向导,清理并重建解决方案,模型从未改变过sproc的签名.
为什么不更新?数据库功能的更新模型是否已损坏?我错过了什么吗?谢谢.
Dav*_*veD 134
在将存储过程添加到实体框架后,我已经看到了更新存储过程的两个问题:
更新EDMX模型(功能导入)
更新存储过程的复杂类型
打开.edmx时打开" 模型浏览器 "窗口.
展开ContentModel,EntityContainer:...,然后展开Function Imports节点.查找存储过程的函数导入,然后双击它.您用于创建它的同一窗口将打开,但现在已填充其数据.
单击" 获取列信息"按钮(查看按钮下方的网格以查看将要更改的内容).
单击"复杂"单选按钮选项旁边的" 更新 "按钮.
单击" 确定",应更新结果集的"复杂类型".
小智 13
您不必编辑edmx/xml.做这个:
当你将一个存储过程带入EDMX时(我说的是一个返回结果集,但它将是一个类似的过程),3,而不是1,创建项目,这就是问题的根源.(***问题的第二个原因是在重新导入对象之前必须在删除对象后明确保存,否则新重新导入的对象将与edmx中未真正删除的内容(通过保存)冲突.
所以!做这个:
在模型浏览器中,通常在左侧,将存储过程的名称粘贴到搜索框中,单击"输入"(或搜索).它将落在第一个实例上 - 可能是存储过程本身.右键单击并删除.现在,将光标放回搜索框 - >点击输入或再次搜索.现在您将登陆功能导入.右键单击并删除.第三次做同样的事情 - 这将落在代表结果集的复杂类型上.删除它.现在你已经完成了!!!!! 您必须保存刚刚执行的操作,以便在edmx中写入(未写入)删除.
现在,再次获取存储过程(更新模型/选择存储过程).现在点击再次保存.
这将每次都有效.关键是确保在使用模型浏览器搜索模型浏览器中出现的存储过程名称的所有实例时,因此,最好不要使用默认命名约定.第二个关键是在完成任何步骤后保存.
小智 6
如果你需要更改结果集中列的数据类型 - >在stor proc的开头添加 set fmtonly off
然后使用模型浏览器 - >功能导入 - >编辑您的过程 - >获取列信息按钮 - >更新按钮
尼尔这是怎么做的:)
| 归档时间: |
|
| 查看次数: |
38180 次 |
| 最近记录: |