【发布时间】:2017-04-10 19:28:27
【问题描述】:
我正在尝试更好地学习 C# 和 MVC,并且正在开展一个项目来帮助我这样做。作为其中的一部分,我正在尝试创建一个用户注册并登录到我的网站。我正在使用 Entity Framework 并尝试遵循我知道或遇到的所有最佳实践,但我认为我对一些事情有点混淆了。
我创建了一个表示层、一个 DataLayer 和一个 BusinessLayer。这基本上给我留下了一个问题,因为我不能做看起来很明显的事情,因为这将是一个循环依赖,而且无论如何这是一件坏事,我想知道我是否以正确的方式去做。
在我的表示层中,我放置了我的 ViewModel 和控制器。
在我的 DataLayer 中是我所有的 EF 类和模型。
我也有一个 BusinessLayer,但这里什么都没有(这里还没有 100% 应该放的东西)
我的表示层显然依赖于我的 DataLayer,但是将数据从 PresentationLayer 中的 ViewModel 传递回 DataLayer 中的数据模型以更新数据库的最佳方法是什么?在视图中,用户基本上将输入登录信息,然后需要将其发送到 DataLayer 中的我的实体,然后使用实体 EF 访问数据库。我无法将我的表示层作为依赖项添加到我的 DataLayer,因为这会创建循环依赖项。
我已阅读有关 automapper 的信息,但不确定这是否正确或该逻辑应该放在哪里,它应该在模型中还是单独的类中以及在哪个层中?我也尝试过使用 Unity 和依赖注入做一些事情,但我认为我现在对实际需要什么感到困惑,并将我正在阅读的内容应用到我实际尝试做的事情上。我可以通过将所有内容放在一个项目中来完成这项工作,但显然我正在尝试从设计的角度正确地做到这一点。
【问题讨论】:
标签: c# entity-framework asp.net-mvc-5