在 mvc 和控制台应用程序之间共享模型和 dbcontext
Share model and dbcontext between mvc and console application
我有一个 MVC 项目和一个使用相同数据库的控制台应用程序。我目前在两种解决方案中都复制了模型和 dbcontext,所以我想将它们放在一个地方。我看到类似的问题:here and here。我不太相信为此使用 Nuget,所以我宁愿使用 class 库。我不确定如果特别是对于 MVC,将 dbcontext 与 MVC 应用程序分开会有一些缺点吗?这是否有意义,然后我将如何从 web/app 配置中引用上下文?
我建议您分层拆分解决方案,例如:
- 域层(存储库和服务的实体、接口)
- 数据层(存储库)
- IoC 层(Ninject 和所有模块)
- 表示层(Web 项目)
- 控制台层
通过这种方法,您可以在多个层重用您的实体和存储库(DbContext 和其他 类 负责访问数据),即使您的项目在增长,相信我,您的项目也在增长。
在您的 Web 和控制台层中,您引用数据层,然后您可以从那里访问您的上下文。
始终遵循 SOLID 原则,以获得更好且可重用的代码。
我有一个 MVC 项目和一个使用相同数据库的控制台应用程序。我目前在两种解决方案中都复制了模型和 dbcontext,所以我想将它们放在一个地方。我看到类似的问题:here and here。我不太相信为此使用 Nuget,所以我宁愿使用 class 库。我不确定如果特别是对于 MVC,将 dbcontext 与 MVC 应用程序分开会有一些缺点吗?这是否有意义,然后我将如何从 web/app 配置中引用上下文?
我建议您分层拆分解决方案,例如:
- 域层(存储库和服务的实体、接口)
- 数据层(存储库)
- IoC 层(Ninject 和所有模块)
- 表示层(Web 项目)
- 控制台层
通过这种方法,您可以在多个层重用您的实体和存储库(DbContext 和其他 类 负责访问数据),即使您的项目在增长,相信我,您的项目也在增长。
在您的 Web 和控制台层中,您引用数据层,然后您可以从那里访问您的上下文。
始终遵循 SOLID 原则,以获得更好且可重用的代码。