我对DbContext进行了一些保存操作。
我有两个实体 - 材质和颜色。这些实体有许多关系。
我尝试这样做:
var color = context
.Colors
.Include("Materials")
.Where(g => g.Id == (colorId))
.FirstOrDefault();
var mater = context
.Materials
.Include("Colors")
.SingleOrDefault(c => c.Name == material.Name);
mater.Colors.Add(color);
context.SaveChanges();
当程序尝试运行context.SaveChanges()
时,它会抛出异常DbUpdateException
Unable to update the EntitySet 'MaterialColors' because it has a
DefiningQuery and no <InsertFunction> element exists in
the <ModificationFunctionMapping> element to support the current operation.
如何解决?
答案 0 :(得分:0)
EF映射的每个表都必须有PK。如果它没有PK,它将被映射为只读视图。您必须转到您的数据库并在MaterialColors
中将两个FK标记为复合PK。而不是更新你的模型。