c# – 为什么EntityCollection.Remove()会导致SaveChanges()引发
使用以下数据库架构:
CREATE TABLE master ( id integer primary key autoincrement,title text); CREATE TABLE slave ( id integer primary key autoincrement,master_id integer not null,title text,foreign key (master_id) references master (id)); 我创建了一个sqlite数据库,然后我用它来创建一个Entity Framework .edmx文件. 然后我添加一个主记录和一个奴隶记录,工作正常,然后我尝试删除从记录,但这引发了一个异常,我不知道为什么. var ctx = new blaEntities(); var newMaster = master.Createmaster(0); ctx.masters.AddObject(newMaster); var newSlave = slave.Createslave(0,0); newMaster.slaves.Add(newSlave); ctx.SaveChanges(); // works fine,both id and master_id properties of newMaster // and newSlave are then set with generated values. newMaster.slaves.Remove(newSlave); ctx.SaveChanges(); // InvalidOperationException is raised 异常的消息是:
我究竟做错了什么? 编辑: 这是由EF Createslave(…)方法生成的: public static slave Createslave(global::System.Int64 id,global::System.Int64 master_id) { slave slave = new slave(); slave.id = id; slave.master_id = master_id; return slave; } 解决方法
从属表中仍有一个从属对象在masterId列中没有设置值.
尝试使用ctx.DeleteObject(newSlave)来摆脱它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- S5PV210的NandFlash应用(一)
- c# – 为Windows.Forms的十六进制查看器控件的建议?
- ruby-on-rails – Rails客户端/服务器端使用单个模板(Handl
- vue+axios 前端实现的常用拦截的代码示例
- c# – MSpec:如何使静态变量线程安全?
- cocos2d-x 3.3 之卡牌设计 NO.6 Loading界面(异步加载图片
- 项目开发笔记-2015.12.21-swift
- c# – 如何从DataReader中检索SqlGeography类型时解决Inval
- 如何使用HttpWebRequest创建一个C#应用程序就像fiddler一样
- 在Ruby中使用(:send)关键字参数?