组织数据库工作的最佳方式

Ale*_*nov 4 c# database architecture

我想知道从C#代码组织数据库的最佳方法是什么.

我曾经有过不同的方法:

  1. 每个对象都有Save,Update和Delete方法,它们实现了所有逻辑.
  2. 有一些静态类具有静态方法Get,GetList,Update - 几乎与以前相同的方法,但数据库逻辑是从数据域类中提取的.

现在我认为为每个需要存储的datadomain类存放一些非静态类会很好,这将会进行存储.

最好的方法是什么?有没有好的库提供良好的API来存储对象?

jga*_*fin 5

使用对象/关系映射器(ORM).我个人最喜欢的是nhibernate.如果需要Microsoft产品,请使用Entity Framework.

ORM通常实现UnitOfWorkRepository模式,这使您更容易处理数据库操作并遵循单一责任原则.

你还提到了单身人士.如果可能,我会避免它们.您是否尝试对使用单例的类进行单元测试?除非单例是实际实现的代理,否则这是不可能的.删除单例的最简单方法是使用依赖注入来反转依赖关系.有几个容器可用.