При добавлении новой сущности с существующей ссылочной сущностью EF 4.1 пытается вставить существующую ссылочную сущность в представление - PullRequest
0 голосов
/ 20 марта 2012

Я столкнулся со странной ситуацией.

У меня есть корневой объект (таблица) со ссылкой на другой объект (представление)

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

   public int SubEntityId {get; set;}

   public SubEntity SubEntity {get; set;}
}

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

Когда я устанавливаю только RootEntity.SubEntityId с существующимSubEntityId Все идет хорошо.

Но, когда я устанавливаю Ref как следующим образом

RootEntity.SubEntity = attachedSubEntity

По какой-то причине EF пытается вставить присоединенный SubEntity в представление, и я получаю это

System.Data.SqlClient.SqlException (0x80131904): Cannot insert the value NULL into column '****', table '****'; column does not allow nulls. INSERT fails.

1 Ответ

0 голосов
/ 19 марта 2013

Я нашел проблему!SubEntity был извлечен с опцией AsNoTracking.

Я думал, что использование этой опции решит проблему "Вставить", но на самом деле он был причиной!

Когда я удалил AsNoTracking Кроме того, все идет хорошо.

Это все еще странно, потому что проблема возникла только при использовании UnitTesting (Nunit).Но с WCF я не столкнулся с проблемой

...