使用NHibernate&存储库模式,用于返回不存在的项的子集合

时间:2010-12-08 15:37:50

标签: nhibernate fluent-nhibernate

我在我最新的应用程序中使用NHibernate和存储库模式。我有3个表/实体:区域,标签和翻译,具有以下模式。

Regions 

Id
RegionName


Tags

Id
FilePath
FileName
TagContent


Translations

Id
RegionId
TagId
Translation

标签表包含短语(标签)列表,应用程序允许用户为每个标签指定翻译。所以我们说标签表包含50个短语(标签)。例如,在用户将其中10个标签翻译成西班牙语之后,西班牙语的区域实体将具有10个翻译标签的子集合。我希望能够在region类上有一个属性/方法,它返回40个未翻译标签的子集合。

我意识到我可以通过检索所有标签并测试以查看区域实体的tranlated标签子集合中是否存在标记来实现此目的。但这一切都发生在客户端。我希望它发生在服务器上(让SQL做的工作)。

这可以通过NHibernate实现。我的映射是什么(我正在使用FluentNHibernate)

1 个答案:

答案 0 :(得分:0)

在我看来,检索此集合应该是存储库类中的查询,而不是域模型的一部分。您可以使用HQL,Criteria或LINQ编写查询。如果你陈述你的偏好,我相信有人会回答一个例子。