2009-09-07 39 views
0

我有一个类Item和一个ItemAttribute类,其中Item有一个ItemAttribute类型的属性。流畅的NHibernate独特字符串表

ItemAttribute只有两个属性,一个叫做ID的Guid和一个叫做name的字符串。这里的想法是,我想存储一个名为ItemAttributes的表,其中包含一个唯一字符串列表。

我的问题是,如果我保存一个引用数据库中已存在的ItemAttribute的Item,我怎样才能使其引用已存在的ItemAttribute,而不是创建一个新的?

更新

的Kristoffer阿尔更好地表达我想要在this post做。

它看起来像什么,我想做的事是不可能的:(

因此,让抽象的东西有点:)的ItemAttributes中表的目的仅仅是为了减少重复,这样我就可以存储每个属性一次,并使用标识符链接到该项目。

如果我可以为每个属性生成一个唯一的ID,那么我可以分配这个ID和代码 - 这应该可行!

但是我怎样才能为一个字符串生成一个唯一的ID?该ID必须一致,以便每次为相同的字符串生成相同的ID。

回答

0

我使用SaveOrUpdateCopy解决了这个问题。

这种方法唯一的事情就是我需要在调用SaveOrUpdateCopy之前为ItemAttribute对象分配一个ID。