В недоумении, как сопоставить два класса в Nhibernate

StackOverflow https://stackoverflow.com/questions/804311

  •  03-07-2019
  •  | 
  •  

Вопрос

Пожалуйста, простите за неуклюжий вопрос (если вы можете придумать, как лучше сформулировать вопрос, не стесняйтесь его редактировать).

У меня есть два класса SupportTicketCategory и SupportTicket (соответственно):

   public class SupportTicketCategory
{
    public SupportTicketCategory()
    { }

    private int _supportTicketCategoryID;
    public virtual int SupportTicketCategoryID
    {
        get { return _supportTicketCategoryID; }
        set
        {
            _supportTicketCategoryID = value;
        }
    }

    private string _supportTicketCategoryName;
    public virtual string SupportTicketCategoryName
    {
        get { return _supportTicketCategoryName; }
        set
        {
            _supportTicketCategoryName = value;
        }
    }


}

и

     public SupportTicket()
    { }

    private int _supportTicketID;
    public virtual int SupportTicketID
    {
        get { return _supportTicketID; }
        set
        {
            _supportTicketID = value;
        }
    }

    private SupportTicketCategory _supportTicketCategory;
    public virtual SupportTicketCategory SupportTicketCategory { get; set; }

Структура моей таблицы следующая:

CREATE TABLE [dbo].[supporttickets](
[supportticketid] [int] IDENTITY(1,1) NOT NULL,
[supportticketcategoryid] [int] NOT NULL,
 CONSTRAINT [PK_supporttickets] PRIMARY KEY CLUSTERED 
(
    [supportticketid] ASC
)
) ON [PRIMARY]

ALTER TABLE [dbo].[supporttickets]  
WITH CHECK ADD CONSTRAINT
[FK_supporttickets_supportticketcategories] 
FOREIGN KEY([supportticketcategoryid])
REFERENCES [dbo].[supportticketcategories] ([supportticketcategoryid])

ALTER TABLE [dbo].[supporttickets] CHECK CONSTRAINT  [FK_supporttickets_supportticketcategories]

CREATE TABLE [dbo].[supportticketcategories](
    [supportticketcategoryid] [int] IDENTITY(1,1) NOT NULL,
    [supportticketcategoryname] [varchar](50) NOT NULL,
 CONSTRAINT [PK_supportticketcategories] PRIMARY KEY CLUSTERED 
(
    [supportticketcategoryid] ASC
)
) ON [PRIMARY]

По сути, я хочу сопоставить SupportTicketCategory с SupportTicket, как это есть в моем классе, однако я не могу понять, какой тип сопоставления является правильным, и не могу найти пример этого в Интернете.

Обновлять:Я изменил свойство SupportTicketCategory на геттеры и сеттеры старой школы, и это сработало... синтаксический сахар для потери.

Это было полезно?

Решение

Если вы используете Мое поколение с Шаблон NHibernate, вы можете указать ему свою базу данных, и он создаст для вас сопоставления, чтобы вы могли увидеть, как это следует сделать.

Другие советы

Я думаю, что вы ищете элемент «многие к одному».(Это находится внутри элемента вашего класса для SupportTicket)

<many-to-one name="SupportTicketCategory" column="SupportTicketCategoryId" update="false" insert="false" />

Сопоставления «многие к одному» можно выполнить следующим образом:

<many-to-one name="SupportTicketCategory" class="SupportTicketCategory" not-null="false" column="SupportTicketCategoryId" />
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top