直接从数据库查询构建的业务对象

时间:2010-07-14 23:00:48

标签: database data-access-layer business-objects

......叫什么?

更详细:对于我的应用程序,我创建了一个很好的业务模型来处理内存中的对象。这是存储和视图不可知的。现在,对于存储层,有一个数据库:我将构建SQL查询(越少越好),从相关表中选择/加入等我需要的所有数据。一种“中间层”获取查询结果并构造具有所有关系的业务对象。

问题:你怎么称呼这种方法?什么是最佳实践?

这发生在.NET C#项目中,但与此设计问题无关。

(我发现问题441532非常相似,但我对更多设计输入感兴趣)

注意:我没有采用依赖于自动执行此操作的工具的 ,因为应用程序只需要来自相对较大的数据库的选定数据。

3 个答案:

答案 0 :(得分:1)

我认为它叫做ORM或对象关系映射。

NHibernate就是这样一个例子。

答案 1 :(得分:0)

答案 2 :(得分:0)

有不同的ORM工具。 Linq to SQL做1:1,这不是你想要的。

您所谈论的内容与Domain Driven Design重叠,您的设计由域驱动,而不是数据库。

在这种情况下,如果您使用的是关系数据库,则仍需要ORM,而实体框架和NHibernate等ORM允许您以任何方式灵活地将实体“映射”到数据库中,其方式如下:如果您的数据库因任何原因需要更改,或者实体必须更改,无论出于何种原因,您需要更改的是中间的“映射”层。

看看fluent nhibernate