跨多个表拆分NHibernate实体行存储

时间:2010-11-23 00:38:02

标签: nhibernate nhibernate-mapping

在我们的NHibernate设置中,我们有一个Listing实体。出于数据库性能原因,我们希望按国家/地区将其存储分成多个表(网站的设置方式,一次不能在多个国家/地区进行搜索)。所以,Listing_US,Listing_FR等等。

两个问题,第一个问题远比第二个问题重要:

  1. NHibernate有什么办法可以为我做这个映射吗?据推测,它将基于在Get()上生成的内部字段(我将在国家代码中传递,或者可能将其集成到主键中?)然后在Save()上读取。

  2. 它是否也包含在架构中,因此从头开始创建整个数据库架构时可以导出?

  3. 编辑:我刚刚意识到这会对尝试选择造成严重破坏。显然,因为我不想每次都查询每个表(会破坏性能优势),我将不得不拥有某种类型的Listing_XX实体,但也许它可以继承一个通用的列表?不过,我不确定这会如何影响XML映射。

2 个答案:

答案 0 :(得分:0)

您可以尝试NHibernate Shards(来自http://sourceforge.net/projects/nhcontrib/

答案 1 :(得分:0)

如果您的数据库支持分区表,那么最好使用分区表(您没有说明您正在使用哪个数据库)。只要您始终使用分区列值集进行查询,您就可以轻松获得多个表的所有性能优势。