【问题标题】:Moving DbContext to a different project than startup将 DbContext 移动到与启动不同的项目
【发布时间】:2018-12-20 09:55:16
【问题描述】:

我正在尝试制作一个通过 EntityFramework 与数据库通信的 WPF 桌面应用程序。我将我的解决方案分成了几个项目:DTO、DAL、Service 和 WPFApp。我已经在 DAL 项目中设置了我的数据库上下文和存储库,并且我使用 WPFApp 作为启动。因此,尝试将对象添加到我的数据库时出现错误:“初始化字符串的格式不符合从索引 0 开始的规范。”

我必须在启动项目中设置我的 DbContext 和 ConnectionString 还是有其他方法可以使这个工作?

【问题讨论】:

  • 我很确定启动项目不是问题。它看起来更像是无效或空的连接字符串。你能查询你的数据库吗?并回答你的问题。不,您的数据库上下文不必在启动项目中。
  • DbContext 不应在正在运行的可执行文件 (.exe) 的 App.config 中定义,但配置字符串应。
  • 我已将实体框架包移动到我的启动项目中,并在那里以及我拥有 DbContext 的 DAL 项目中添加了连接字符串。我想不出只引用一次 EF 的方法,但它像这样工作得非常好。感谢您的帮助!

标签: c# wpf entity-framework dbcontext


【解决方案1】:

当您在项目中添加实体框架数据库第一个模型时,连接屏幕上会出现一个复选框,上面写着类似于将连接字符串添加到 app.config。

连接所依赖的所有东西都会出现在该特定项目自己的配置中。

这些不是您要查找的配置。

或者至少不是当您的 dll 加载并在其上下文中运行时 exe 将查看的配置。

最简单的修复:

将项目配置中的所有连接内容复制到主解决方案的配置中。

【讨论】:

    猜你喜欢
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多