c# - 创建模型类还是坚持使用通用数据库实用程序类更好?

标签 c# asp.net-mvc database ado.net

我们内部有一个用于数据库调用的简单实用程序类(ADO.NET 的轻量级包装器),但我正在考虑为每个数据库/对象创建类。这样做是明智之举,还是只有在我们为 ASP.NET 使用完整的 MVC 框架时才会受益?

所以我们有这个:

SQLWrapper.GetRecordset(connstr-alias, sql-statement, parameters);
SQLWrapper.GetDataset(connstr-alias, sql-statement, parameters);
SQLWrapper.Execute(connstr-alias, sql-statement, parameters);

想到这样做:
Person p = Person.get(id);
p.fname = "jon";
p.lname = "smith";
p.Save();

或创造新纪录——
Person p = new Person();
p.fname = "Jon";
p.lname = "Smith";
p.Save();
p.Delete();

这会很聪明,还是会矫枉过正?我可以看到重用、更改数据库和维护/可读性的好处。

最佳答案

这个问题是加载的,数据驱动设计 vs 领域驱动设计。对于任何具有大量行为的应用程序,应该首选领域驱动设计。通过数据驱动的设计,报告或实用程序往往能更好地工作(或开发得更快)。

您要问的是“我的公司是否应该对我们设计代码的方式进行根本性转变”。作为一个域狂,我的本能 react 是尖叫 .但是,由于您问题的简单性质,我不确定您是否完全理解您提议的更改范围。我认为你应该更多地与你的团队讨论这个问题。

获取一些文献,例如 Evan's DDD书,或 free foundations ebook ,然后您就可以更好地判断应该往哪个方向发展。

关于c# - 创建模型类还是坚持使用通用数据库实用程序类更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2778/

相关文章:

asp.net-mvc - ASP.NET Web API 中简单属性的自定义类型转换器

python - Django ORM 是否具有等效于 SQLAlchemy 的混合属性?

MySQL 多对多关系的限制

mysql - 从表中删除重复的行(每天的第一个时间戳除外)

c# - 有没有办法告诉 Resharper 6 忽略新的异步语言功能?

c# - 从 FileStream 获取字节数组的正确方法是什么?

c# - 如何获取 Windows 7 中缓存和释放的物理内存量?

c# - 每个请求缓存 Entity Framework DbContexts

asp.net-mvc - 如何识别 ASP.NET MVC 网站?

c# - Razor @Html.ValidationMessageFor() 不显示 "validation error message"