Синтаксис FluentNHibernate HasManyToMany - PullRequest
0 голосов
/ 21 августа 2010

У меня возникли проблемы с определением правильного синтаксиса для сопоставления отношений «многие ко многим» с FluentNHibernate.Я рассмотрел несколько других вопросов здесь, в SO и других местах, но не видел ничего, в частности, с такой же структурой таблиц.Надеясь, что кто-то, кто знает больше, чем я о FNH, может помочь мне понять это.Вот мои структуры таблиц:

CREATE TABLE [dbo].[WorkItems](
    [Id] [bigint] IDENTITY(1,1) NOT NULL,
    [CategoryId] [bigint] NOT NULL,
    [DateTime] [datetime] NOT NULL,
    [Details] [nvarchar](2000) NULL,
    [Duration] [int] NOT NULL,
    [DurationInterval] [nvarchar](10) NOT NULL,
    [Summary] [nvarchar](150) NOT NULL,
    [UserId] [bigint] NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)

CREATE TABLE [dbo].[Tags](
    [Id] [bigint] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](50) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)

CREATE TABLE [dbo].[TagWorkItems](
    [TagId] [bigint] NOT NULL,
    [WorkItemId] [bigint] NOT NULL,
 CONSTRAINT [TagId_WorkItemId_PK] PRIMARY KEY CLUSTERED 
(
    [TagId] ASC,
    [WorkItemId] ASC
)

TagId и WorkItemId в таблице TagWorkItems являются внешними ключами для родительских таблиц.Это довольно простая настройка таблицы соединений для отношений m2m.Мой класс Tag имеет свойство типа ICollection, а мой класс WorkItem имеет свойство ICollection.Я не могу понять, как настроить сопоставления для этих свойств.Любой совет будет принята с благодарностью.Спасибо.

1 Ответ

0 голосов
/ 21 августа 2010

Вот пример того, что может сказать отображение WorkItem; бит readonly зависит от того, как вы собираетесь поддерживать отношения:

HasManyToMany(x => x.Tags)
            .Table("TagWorkItems")
            .ParentKeyColumn("WorkItemId")
            .ChildKeyColumn("TagId")
            .AsSet()
            .ReadOnly();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...