虽然我相信我对MVC(来自Rails)有很好的把握,但我正在学习使用ASP.NET MVC的“MS Way”。
另外,我也在学习实体框架。
我在我的Models文件夹中创建了一个名为User的实体。使用LINQ to EF我可以检索记录,一切都很好。
现在,我想把一些业务(或我称之为域)逻辑放进去。但在我看来,EF更多的是DAL。所以我创建了一个名为“Domain”的文件夹,在那里,我为一些业务规则创建了一个类。
其中一个是加密密码。
所以我可以在我的控制器中使用以下内容:
string password = Domain.User.EncryptPassword(string salt, string password);
此外,这意味着域逻辑可以在需要持久保存到数据库时访问EF用户。
这个逻辑是否合理?
任何建议表示赞赏。
谢谢!
答案 0 :(得分:3)
我唯一要问的是:“为什么用户,一个人知道如何加密或散列密码?”
加密密码将成为Application层的一部分。这几乎是反DDD。
答案 1 :(得分:2)
这取决于项目,但通常我们:
答案 2 :(得分:1)
我认为您正在寻找的是POCO(普通旧CLR对象)。一方面,您拥有EF实体。另一方面,您拥有自己的域或业务实体......然后您可以映射它们......您的DAL层必须返回POCO实体而不是EF实体..至少这是如何在3层应用程序中进行的。我想这是MVC应用程序中的相同方法......
我是对的吗?