【发布时间】:2022-02-23 17:07:45
【问题描述】:
我最近开始阅读Pro ASP.NET MVC Framework。
author 谈论创建存储库,以及使用接口设置快速自动化测试,这听起来很棒。
但它带来的问题是必须两次声明数据库中每个表的所有字段:一次在实际数据库中,一次在 C# 代码中,而不是使用 ORM 自动生成 C# 数据访问类.
我明白这是一个很好的做法,并且启用了看起来也很棒的 TDD。但我的问题是:
是否有任何解决方法必须两次声明字段:在数据库和 C# 代码中?我不能使用自动生成 C# 代码但仍允许我执行 TDD 而无需在 C# 中手动创建所有业务逻辑并为每个表创建存储库(以及假存储库)的东西吗?
【问题讨论】:
-
是什么让你觉得业务逻辑必须声明两次?
-
"...不得不为自己声明数据库的所有业务逻辑两次:一次在实际数据库中..." 等等,什么? BL 没有进入 DB,是什么让你认为它在这里出现?
-
我的意思是你两次声明数据库中每个表的所有字段,一次在数据库本身中,一次在 C# 代码中,这可以通过使用 LINQ To SQL 的自动映射之类的东西来避免类
-
编辑了您的标题,因为我认为您没有询问有关存储库模式的任何内容,只是一般而言的数据访问。在数据库和代码之间复制或映射字段一直是一个问题,我认为您只是要求自动化工具选项。存储库模式实际上并不是说您需要有一个单独的业务和数据访问模型,事实上 ORMS 旨在支持和处理映射中的各种转换。 MS 的实现通过自动生成鼓励持久性而不是域模型,但这当然不是必需的
标签: c# asp.net-mvc tdd separation-of-concerns