我有一个问题,需要一些建议来解决。我正在开发一个ASP.NET MVC应用程序,并使用ADO.NET EF连接数据库。我的问题是,我的应用程序的业务逻辑是否应该使用EF创建的实体,还是应该创建一个更抽象的层次,将EF实体与我的业务逻辑对象分离(并开发一些转换器来转换这些对象类型)。或者也许我完全错了,应该以不同的方式处理?如何处理?哪种解决方案是最好的实践?
我有一个问题,需要一些建议来解决。我正在开发一个ASP.NET MVC应用程序,并使用ADO.NET EF连接数据库。我的问题是,我的应用程序的业务逻辑是否应该使用EF创建的实体,还是应该创建一个更抽象的层次,将EF实体与我的业务逻辑对象分离(并开发一些转换器来转换这些对象类型)。或者也许我完全错了,应该以不同的方式处理?如何处理?哪种解决方案是最好的实践?
我处理这种情况的方法是为数据类和模型类分别创建不同的项目。
数据类将由您的 ADO.net 模型生成,然后您可以使用存储库模式连接到 ADO.net 上下文,检索数据类,并使用类似于 http://automapper.codeplex.com/ 的工具将数据类映射到业务模型。
这将允许您在模型上使用 MVC 验证,例如必填项、正则表达式等,并避免与数据类混淆,只传递模型。