2011-09-17 161 views
0

我有这样的代码保存一个简单的实体:实体框架 - 上的SaveChanges异常

ExecutionEngineEntities db = new ExecutionEngineEntities(); 
Task task = new Task(); 
task.Message = "Test"; 
task.Result = "Test"; 
task.Name = "Test"; 
db.Tasks.AddObject(task); 
db.SaveChanges(); 

这是例外:

A first chance exception of type 'System.Data.UpdateException' occurred in System.Data.Entity.dll 
Unable to update the EntitySet 'Tasks' because it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation. 
The program '[6092] WebDev.WebServer40.EXE: Managed (v4.0.30319)' has exited with code 0 (0x0). 

这是创建表的代码:

CREATE TABLE [dbo].[Tasks](
    [ID] [int] IDENTITY(1,1) NOT NULL, 
    [Name] [nchar](50) NULL, 
    [Message] [nchar](1000) NULL, 
    [Result] [nchar](1000) NULL 
) ON [PRIMARY] 

在谷歌搜索后,我发现模式的人有这个错误有关系问题,吨他不是我的情况下

感谢

回答

2

也许这里的回答可以帮助你:It has a DefiningQuery but no InsertFunction element... err

这可能是因为在EF模型,可以配置该实体是一个视图,而不是表。视图不支持创建,更新或删除操作,因此您无法插入。

+0

谢谢,答案帮助了我,但我创建了一个表格,而不是视图....出了什么问题,我如何让EF将它看作是表格而不是视图? – SexyMF

+0

在我已链接的答案有另一个链接:http://blogs.msdn.com/b/alexj/archive/2009/09/01/tip-34-how-to-work-with-updatable-views .aspx,它告诉你如何检查它是否配置为模型中的表或视图 – Andreas