Я новичок в Fluent-NHibernate.Моя проблема в том, что я хочу установить отношения «один ко многим» между двумя объектами.Продукт может иметь несколько (уникальных) ревизий, а конкретная ревизия принадлежит только одному продукту.Так, например, Product1 имеет ревизию «a» и ревизию «b», но не может иметь две ревизии «a».Вот как выглядят мои определения классов:
public class Product
{
public virtual int ID {get; private set;}
public IList<ProductRevision> revisions { get; set; }
}
public class ProductRevision
{
public virtual int ID {get; private set;}
public Product isRevisionOf { get; set; }
public virtual string revision { get; set; }
}
Вот мое отображение
public class ProductMap : ClassMap<Product>
{
public ProductMap()
{
Id(x => x.ID).Column("ProductNo");
HasMany(x => x.revisions).Cascade.All();
}
}
public class ProductRevisionMap : ClassMap<ProductRevision>
{
public ProductDefinitionFormationMap()
{
Id(x => x.ID);
References(x => x.isRevisionOf).UniqueKey("Product_Revision").Not.Nullable();
Map(x => x.revision).UniqueKey("Product_Revision").Not.Nullable();
}
}
Теперь я получаю избыточный столбец «Product_Id» в таблице ProductRevision.Я получаю что-то не так, определяя отношения на ОБА сторон с hasMany () и reference ().Обычно я не определяю отображение References (...), но оно мне нужно для ограничения uniquekey, не так ли?
Спасибо, Эрик