在mvc和控制台应用程序之间共享模型和dbcontext

时间:2016-01-11 19:54:00

标签: c# asp.net-mvc entity-framework console-application

我有一个MVC项目和一个使用相同数据库的Console应用程序。我目前在两个解决方案中都复制了模型和dbcontext,所以我想把它们放在一个地方。我看到了类似的问题:herehere。我不知道为什么不相信使用Nuget,所以我宁愿使用类库。我不确定,特别是对于MVC,将dbcontext与MVC应用程序分开会有一些缺点吗?这是否有意义,然后我将如何从web / app configs引用上下文?

1 个答案:

答案 0 :(得分:2)

我建议您将解决方案分层,例如:

  • 域层(实体,存储库和服务的接口)
  • 数据层(存储库)
  • IoC Layer(Ninject和所有模块)
  • 表示层(Web项目)
  • 控制台层

enter image description here

使用这种方法,您可以在多个层中重复使用您的实体和存储库(DbContext和可用于访问数据的ohter类),即使您的项目增长,并相信我,您的项目也会增长。

在您的Web和控制台层中,您引用DataLayer,然后您可以从那里访问您的上下文。

请始终遵循SOLID原则,以获得更好且可重复使用的代码。