DAL中数据库对象的分离级别

时间:2010-02-26 18:24:48

标签: c# data-access-layer

在这里寻找一些一般性的建议。

选项1。 是否最好让所有主要数据库对象(例如Contact,User,Customer等)在DAL中具有通用类,其中包含依赖于主对象的数据库对象的嵌套类(ContactAddress,UserEmail等...这些会有多个值,所以它们包含在单独的表中。)

OR

选项2。 为ContactAddress等事物提供完全独立的DAL类,并将这些元素组合在业务层中会更好吗?

如果我在这里没有意义,请告诉我。

2 个答案:

答案 0 :(得分:1)

我通常在业务逻辑层中定义我的对象,并在DAL对象和业务对象之间进行一些转换。我的DAL对象通常由某些ORM框架(例如EF或LinqToSQL)自动生成。原因是我的业务逻辑层对象不是POCO,但也包含业务逻辑,而DAL对象纯粹是poco(尽管它们可能用一些ORM逻辑装饰)。

答案 1 :(得分:0)

如果将所有公共类放在命名空间级别(而不是内部类),它通常有助于发现。

你引用的两个例子可以概括而无害:

ContactAddress变为Address

UserEmail变为Email

这样,如果您愿意,可以稍后重复使用它们。