是否存在表示查询结果中的行的对象的设计模式?

时间:2016-03-09 11:58:56

标签: sql design-patterns orm

案例

假设我通过纯SQL或ORM库从应用程序复制查询数据库:

foreach (Clip clip in _clipsFound)
{
    SearchIDResult var = new SearchIDResult(clip);
    _Found.Add(var);
}

结果是SELECT user.name, book.title, home.address FROM user JOIN book on user.book_id = book.id JOIN home on book.home_id = home.id; 元组列表。

从每一行初始化对象通常很方便,a-la:

(name, title, address)

问题

是否存在表示数据库查询中的行的对象的设计模式?

注释

  • 关注Active Record answer:这种情况有所不同。 Active Record指的是表中的一行,它与数据库绑定。这意味着可以在DB中实现对象的更改。我的案例讨论了一个反映查询的对象,这可能是一个复杂的JOIN的结果。生成的对象与数据库无关,并且其中的更改无法反映回数据库。

1 个答案:

答案 0 :(得分:1)

The Active Record pattern表示带有对象的每个数据库行(尽管它为该对象提供了更新数据库的能力,但您没有指定)。