У меня возникли проблемы с определением подходящего синтаксиса отображения FluentNHibernate для следующей модели данных и объектов домена. Вот модель данных, с которой я работаю:
![enter image description here](https://i.stack.imgur.com/vYkAG.jpg)
И я пытаюсь сопоставить следующие доменные объекты этой модели:
namespace FluentNHibernateSandbox.Entities
{
public abstract class EntityBase
{
public virtual long Id { get; set; }
}
}
namespace FluentNHibernateSandbox.Entities
{
public class Attribute : EntityBase
{
public virtual string Name { get; set; }
public virtual string Label { get; set; }
public virtual string Description { get; set; }
public virtual int SortOrder { get; set; }
public virtual Group Group { get; set; }
public virtual Editor Editor { get; set; }
}
}
namespace FluentNHibernateSandbox.Entities
{
public class Group : EntityBase
{
public virtual string Name { get; set; }
public virtual string Label { get; set; }
public virtual string Description { get; set; }
public virtual int SortOrder { get; set; }
public virtual IList<Attribute> Attributes { get; set; }
}
}
namespace FluentNHibernateSandbox.Entities
{
public class Editor : EntityBase
{
public virtual string ViewName { get; set; }
public virtual string WorkerClassName { get; set; }
}
}
В общем, то, что я в конечном итоге хочу, не кажется, что это должно быть так сложно сделать, но после того, как я попробовал каждую комбинацию отображений, о которой я могу думать, я все еще не могу понять, что это правильно , Мне просто нужно, чтобы у моего атрибута была ссылка на группу, к которой он принадлежит, и ссылка на назначенного ему редактора, и каждая группа должна иметь коллекцию атрибутов, которые являются ее частью. Пара столов «многие ко многим» - это то, что мне кажется подходящим. В частности таблица APPLICATION_ATTRIBUTE. В конечном итоге мне нужны только те атрибуты, которые относятся к моему приложению, в данном случае те, у которых APPLICATION_ID равен 4.
Любая помощь будет принята с благодарностью. Спасибо.