NHibernate映射问题
问题描述:
我在现有数据库中具有以下一组表。NHibernate映射问题
资源 - RESOURCEID
LocalisedResource - LocalisedResourceID,资源ID,语言,文化,LocalisedTerm
办公室 - OfficeId,NameResourceId
现在我婉查询特定的办公室,回到办公室的名字对于特定的语言文化组合,如果没有为指定的语言和文化找到条目,则会回到默认语言“EN”和“GB”的文化。
所以,这样的事情...
public class Office
{
public virtual int OfficeId { get; set; }
public string Name { get; set; }
}
repository.GetOffice(5 /* id */,"zh" /* language */,"cht" /* culture */);
我们也想这样做,保存太...
repository.SaveOffice(office,"zh" /* language */,"cht" /* culture */);
目前,我们正在做我们所有的映射在自定义写入的一组存储过程,使用一个函数来提取正确的名称。这显然减慢了我们的速度,因为我们必须为我们所有的粗体代码编写大量的SP。
答
这篇关于localizing NHibernate using filters的文章可能有助于检索您的对象,但我不知道它是否有助于保存。
编辑为添加:您可以将Localasied名称映射为Office上的集合,并使用OFfice上的方法从集合中查找本地化名称。性能可能是可接受的,这取决于您的应用程序如何使用Office对象。
非常好,给我一个下一步要走的起点。我现在不会回答这个问题,看看有没有人可以解决这个问题,但如果没有的话,会在几天后标记为最佳答案。 – 2010-01-21 08:04:52