Требуется помощь по синтаксису сопоставления FluentNHibernate - PullRequest
1 голос
/ 25 января 2011

У меня возникли проблемы с определением подходящего синтаксиса отображения FluentNHibernate для следующей модели данных и объектов домена. Вот модель данных, с которой я работаю: enter image description here

И я пытаюсь сопоставить следующие доменные объекты этой модели:

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.

Любая помощь будет принята с благодарностью. Спасибо.

1 Ответ

2 голосов
/ 08 марта 2011

Действительно удивительно, что никто не ответил на это вообще , но в любом случае.Ответ / решение для этой картографической ситуации, с которой мы столкнулись, с которой я пытался избежать, но оказалось, что это действительно лучший способ, заключалось в создании некоторых пользовательских представлений в базе данных, которые объединяли всенеобходимые для приложения данные, а затем просто сопоставили доменные объекты моего приложения с этими представлениями.Это сработало, по крайней мере, частично, потому что информация, которая мне была нужна из этих таблиц, будет доступна только для чтения для этого приложения, но даже если мне нужно было записать в таблицы, я почти уверен (хотя и не проверял, как не делал)в этом случае мне действительно не нужно), чтобы я мог настроить свои представления для записи и это тоже сработало бы.

Шляпа на @ robconery .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...