Как правильно установить отношения один-ко-многим в Fluent NHibernate? - PullRequest
0 голосов
/ 29 октября 2019

Скажем, у меня есть две очень базовые сущности:

public class Contact
{
    public int Id { get; set; }

    public ContactStatus ContactStatus { get; set; }
}


public class ContactStatus
{
    public int Id { get; set; }

    public string Description { get; set; }
}

Здесь нужно смоделировать то, что пользователь сможет создать несколько статусов контактов для целей классификации и связатьих к контактам.

Более того, в этой модели null является возможным значением для ContactStatus, что означает, что оно не было классифицировано.

СейчасЯ использую Fluent NHibernate. Я попытался сопоставить их как:

public class ContactStatusMap : ClassMap<ContactStatus>
{
    public ContactStatusMap()
    {
        Table("contact_status");
        DynamicUpdate();
        Id(x => x.Id, "ID").GeneratedBy.Native().Not.Nullable();
        Map(x => x.Description, "DESCRIPTION").Not.Nullable();
    }
}

public class ContactMap : ClassMap<Contact>
{
    public ContactMap()
    {
        Table("contact");
        DynamicUpdate();
        Id(x => x.Id, "ID").GeneratedBy.Native().Not.Nullable();

        References(x => x.ContactStatus, "CONTACT_STATUS_ID").Nullable();
    }
}

Теперь, когда я пытаюсь выдать одну Delete на ContactStatus, я получаю одну ошибку ограничения ForeignKey, предотвращающую удаление. Поведение, которое я хотел реализовать, заключается в том, что если ContactStatus удаляется, то все связанные Contacts просто имеют свойство ContactStatus, установленное в ноль.

Я попытался реализовать это, добавив Nullable()после References() но это не сработало. Я все еще получаю ошибку ограничения внешнего ключа.

Что мне здесь не хватает? Как я могу просто отбросить отношения после удаления одного объекта на одной стороне отношения один-ко-многим в Fluent NHibernate?

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