【问题标题】:ASP.Net C# Setting up separate Mvc and WebApi projects to use the same databaseASP.Net C# 设置单独的 Mvc 和 WebApi 项目以使用相同的数据库
【发布时间】: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


【解决方案1】:

您不能只创建一个从数据层返回数据库上下文实例的静态方法吗? 然后,您可以从 api 和 mvc 项目中引用您的数据层,然后调用静态方法。

我认为您应该创建一个引用数据层的业务层,然后您可以从您的 api 和 MVC 项目中调用业务逻辑。

【讨论】:

  • 非常感谢您的输入,我确实将该方法设置为静态,我在连接字符串中做了一个 oopsie。感谢@ViVi 和 ADyson,我找到了它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-01
相关资源
最近更新 更多