【发布时间】:2017-05-26 19:14:35
【问题描述】:
嘿,我遇到了以下问题:
我有一个包含以下项目的解决方案:
- ~.Api
- ~.Mvc
- ~.数据 ~.Api 项目包含用于与数据库通信的 Api 控制器,~.Data 项目包含所有模型和存储库以及派生自 DbContext 的类,最后是包含 MVC 的 ~.MVC 项目。
现在手头的问题是他们需要使用相同的数据库,但是当我在各自的 Web.config 文件中给两个项目相同和标签时,第一个尝试调用数据库的项目工作正常,但另一个出现错误(下同)。
我还尝试从两个文件中删除标签,并为从 DbContext 派生的类提供一个:base("connectionstring" 及其构造函数。这导致错误 "~.Mvc\App_Data\connectionstring.mdf' as database '连接字符串'"。
我认为这可能是一个问题,第二个项目想要创建它自己的数据库版本但它已经存在,但它也可能是完全不同的东西。
有没有人遇到过类似的问题,或者你知道我应该怎么做吗?感谢所有帮助!
【问题讨论】:
-
该错误消息毫无意义 - 这是完整的消息吗?我怀疑,由于您似乎使用的 .mdf 数据库只是磁盘上的文件,因此项目需要能够引用数据库的实际路径。如果您将“app_data”指定为每个项目中的路径,则它指的是该项目中的文件夹。或者更好的是,恕我直言,使用作为服务运行的适当数据库,您可以通过端口而不是文件引用访问它。 SQL Server 社区版可免费安装。然后很容易使用相同的连接字符串从任何项目连接到它。
-
完全同意阿迪森的观点。您需要有一个 SQL 实例而不是
mdf文件。 SQL 的好处是您可以从任意多个项目中使用它,这与 mdf 不同。 -
我可以使用 MSSQLLocalDb 执行此操作吗?你能告诉我怎么做吗?
-
非常感谢!我删除了对 mdf 文件的引用,我通常不这样做,但我认为那部分是生成的,我不想检查它。非常感谢@ADyson 和 ViVi 让我看看它!我刚刚从连接字符串“AttachDbFilename=|DataDirectory|\aspnet-SchoolManagementSystem.Mvc-20170526013041.mdf”中删除了这部分
标签: c# asp.net asp.net-mvc entity-framework