Можно ли установить внешний ключ на ноль без HasMany? - PullRequest
2 голосов
/ 01 февраля 2012

У меня есть субъект Территория

    class Territory
    {
      public int Id {get;set;}
      public string Title {get;set;}
    }

и некоторые объекты, на которые есть ссылки, такие как

    class MyObject
    {
      public Territory Territory {get;set;}
    }

и отображение в FluentNHibernate

    References(x => x.Territory)
            .Column("TerritoryId")
            .Nullable()                
            .Not.LazyLoad()
            .Cascade.None();

и при удалении территории возникает ошибка: оператор DELETE конфликтует с ограничением REFERENCE "FK377ABC4DAD038F1B". Конфликт произошел в базе данных «GPM_Test», таблице «dbo.MyObject», столбце «TerritoryId».

Как сделать так, чтобы nhibernate установил FK в NULL перед удалением территории?

Мне нужно что-то вроде в SQL

    ON DELETE set NULL

1 Ответ

0 голосов
/ 01 февраля 2012

Я бы сказал, что вы должны сначала удалить ссылки между сущностями, прежде чем сможете удалить сам объект, это можно сделать в базе данных путем каскадного удаления. Другой способ - программно удалить ссылки между сущностью, которую вы хотите удалить, и связанными таблицами.

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