具有自定义实体的实体框架和存储过程

时间:2011-08-15 13:59:37

标签: entity-framework entity-framework-4.1

我有一个现有的EF4.1项目正常运行。我在数据库中添加了一个新的SP,它返回一种新的实体(带有一些附加字段的现有实体)。

问题是当我尝试将函数导入EF时 - 它不会创建我的复杂类型。向导写道“没有为此模型配置数据库连接”。这很奇怪 - 因为它确实看到了新的SP和一切。

我已经尝试创建自己的新复杂类型,但它不会根据需要映射字段(某些类型转换问题)

任何想法可以做些什么?

谢谢!

6 个答案:

答案 0 :(得分:4)

基于马拉科的答案,我有一个类似的情况。我的问题是我的连接字符串在外部文件中

<connectionStrings configSource="some_other_file.config">

“更新模型”向导有一个错误,它不会在外部文件中查找连接字符串,并且我不能在connectionStrings标记中留下连接字符串,因为它必须为空或者在构建时会出错。

对我来说,解决方法是使用更新向导,选中“在W​​eb.config中保存实体连接字符串”框,然后添加我的所有函数导入。当我完成后,我将注释掉connectionString,以便我的项目将构建。下次,在更新模型之前取消注释该实体连接字符串。

很烦人,但至少有办法让它发挥作用。

答案 1 :(得分:1)

对我来说,我是如何让它在我的模型项目中工作的。我留下的其他连接字符串有&#34; server =&#34;在那里(非EDMX相关)。我刚删除了那些其他连接字符串,EDMX更新向导的工作方式与宣传的一样。

看到错误消息:由于以下异常,无法更新App.Config文件:&#39;&#39;服务器&#39;不支持关键字。&#39;

答案 2 :(得分:0)

我假设实体模型的ConnectionString属性为空。检入模型浏览器。

解决此问题的最简单方法是删除.config文件中的所有连接字符串。搜索

connectionstring="

完全删除行或使用

对其进行评论

删除您的edmx并重新创建它。确保选中“将Web.config中的实体连接设置保存为:”。

现在应该设置ConnectionString,你可以通过函数导入生成复杂的模型。

答案 3 :(得分:0)

如果它仍然不适合您,则删除其他连接字符串。并重新添加新的。 这个问题也解决了。删除所有连接字符串并首先添加Entity框架的连接字符串,然后添加其他字符串,但更改了名称。

答案 4 :(得分:0)

我对同一问题(VS2013)的解决方案是:

  1. 转到模型浏览器
  2. 右键单击YourModel.edmx
  3. 从数据库更新模型
  4. 然后它提示我选择连接。我选择了我想要的连接,然后进入下一个屏幕。
  5. 添加/刷新/删除您需要的内容。
  6. 选择完成,然后连接就在这里。

答案 5 :(得分:0)

每次添加存储过程时都必须再次添加连接字符串。否则,当您尝试获取列时,您将获得一条消息,并且#34;编辑功能导入&#34;您将看到一条消息说&#34;没有为此型号配置数据库连接&#34;。

所以我的解决方法是再次重新安装存储过程但是当我有20个或更多时会发生什么,然后每次我必须重新执行所有存储过程。或者创建一个新模型,这是其中的缺点。

以下是我的解决方案的链接,有一个视频和所有内容,但我试图计算如何删除模型或添加连接字符串VIDEO LINK stack overflow solution因为还没有办法映射存储过程我使用我的公司必须检索的类来存储过程中的表,然后将数据作为JSON字符串发送,如果你想要解决方案让我知道然后我将托盘来执行代码解释(使用.dsn连接字符串和ODBC&#34;打开数据库连接&#34;)。