У меня есть две таблицы FilesystemEntries и CacheEntries, где существует ассоциация 0..1 CacheEntry для FilesystemEntry (то есть для FilesystemEntry может иметь значение CacheEntry, но не наоборот). Первоначально CacheEntry для всех FilesystemEntries имеет значение null. У меня проблемы с изменением этого (добавление нового CacheEntry). Код (усеченный) выглядит так:
FilesystemEntry filesystemEntry; // Already exists in database
CacheEntry cacheEntry; // A new one is created
// ...
filesystemEntry.CacheEntry = cacheEntry; // Was null before (verified in debugger)
cacheEntry.FilesystemEntry = filesystemEntry;
_db.AddToCacheEntries(cacheEntry);
Однако я получаю следующую ошибку:
System.Data.UpdateException: A relationship is being added or deleted from an
AssociationSet 'FK_CacheEntries_0'. With cardinality constraints, a corresponding
'CacheEntries' must also be added or deleted.
Кто-нибудь из волшебников инфраструктуры сущностей знает, что происходит?
Аналогично, есть ли способ разрешить базе данных обрабатывать «ON DELETE CASCADE» (я использую sqlite, так что это будет через триггер)? Это было бы намного удобнее и перспективнее, чем указание всех удалений в DAL.