不保存EntityFramework上下文

时间:2012-05-09 22:53:46

标签: c# .net entity-framework exception dbcontext

我对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.

如何解决?

1 个答案:

答案 0 :(得分:0)

EF映射的每个表都必须有PK。如果它没有PK,它将被映射为只读视图。您必须转到您的数据库并在MaterialColors中将两个FK标记为复合PK。而不是更新你的模型。