我遇到了一个奇怪的情况。
我有一个根实体(表),可以引用另一个实体(视图)
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;}
}
当我只使用现有的SubEntityId设置RootEntity.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.
答案 0 :(得分:0)
我发现了问题!已使用SubEntity
选项获取AsNoTracking
。
我认为使用此选项可以解决“插入”问题,但实际上他是原因!
当我删除AsNoTracking
时,一切顺利。
它仍然很奇怪,因为只有在使用UnitTesting(Nunit)时才会出现问题。但是使用WCF我没有遇到问题