我有一个解决方案,它由多个项目组成。
1.
Persistence
,其中我有从数据库获取数据的类 Repository 和类 MyDbContextAPI
其中控制器将存储库类作为依赖项。MVC
,控制器向API发送请求并获取数据并将其发送到视图
因此,SQLite 数据库文件位于 API 项目中。但现在我需要使用不是来自 API 项目的存储库,而是来自 MVC 项目的存储库来处理数据库(我知道,它与我的项目的架构不符,但我仍然想这样做)。
但是如果我在 MVC 项目中使用存储库类,它会在 MVC 项目中创建一个新数据库,但我需要使用 API 项目中的数据库文件。即使我在两个项目中将存储库添加为单例,也会发生这种情况。
如何在 MVC 项目中使用相同的数据库?
我解决了,我需要将数据库的路径修改为:
Data Source=../PollsApp.Api/data.db
我不确定你为什么要尝试为单独的项目使用一个数据源,除非它们需要处理相同的数据(位于同一个数据库中),并且这不仅仅是为了走捷径而不创建单独的数据库,只是因为: )
因此,我建议使用 SQLite 数据库指定文件的所有绝对路径,例如:
Data Source=C:/temp/PollsApp.Api/data.db
我还强烈建议将数据库文件移到任何项目之外,以防止它与包含的项目一起意外移动。