Я новичок NHibernate и свободно-nhibernate. И у меня есть некоторые проблемы с уникальным ограничением и отображением nhibernate.
У меня есть следующая часть модели домена.
public class Batch
{
public virtual int Id {get; set;}
public virtual string Name {get; set;}
public virtual IList<BatchParameter> BatchParameters {get; set;}
}
public class BatchParameter
{
public virtual int Id {get; set;}
public virtual string Name {get; set;}
public virtual Batch Batch {get; set;}
}
Я пытаюсь использовать fluent-nhibernate, чтобы отобразить его на БД (SQLServer), используя автоматическое отображение.
Я хочу настроить свою БД, чтобы иметь:
Первичные ключи в свойствах "Id"
внешний ключ в таблице BatchParamets
Уникальное ограничение на таблицу партий в столбце Имя
Уникальное ограничение в таблице BatchParameters в столбцах Name и Batch_Id
Итак, я записал этот код:
public class BatchMapping : IAutoMappingOverride<Batch>
{
public void Override(FluentNHibernate.Automapping.AutoMapping<Batch> mapping)
{
mapping.Id( b => b.Id);
mapping.HasMany<BatchParameter>(p => p.BatchParameters).Cascade.All().Inverse();
}
}
public class BatchParameterMapping : IAutoMappingOverride<BatchParameter>
{
public void Override(FluentNHibernate.Automapping.AutoMapping<BatchParameter> mapping)
{
mapping.Id( b => b.Id);
mapping.Map(b => b.Name).Unique();
//mapping.Map(p => p.Name).UniqueKey("Batch_Parameter");
//mapping.Map(p => p.Batch.Id).UniqueKey("Batch_Parameter");
}
}
Нет проблем для первичных ключей, внешнего ключа и первого уникального ограничения. Немного головной боли за Уникальное ограничение.
Может кто-нибудь показать мне прямой путь?
Спасибо!