读书人

请问entity framework 删除一对多关联

发布时间: 2011-12-25 23:21:20 作者: rapoo

请教entity framework 删除一对多关联对象
实体定义如下:

Dirs

Files

其中Files中包含外键列DirID指向Dirs的主键DirID

需求:删除一条Dir记录,同时删除该Dir所对应的所有Files



代码:

C# code
using(MyEntities et = new MyEntities()){    var dir=(此处省略);    dir.Files.Clear();    et.Dirs.DeleteObject(dir);    et.SaveChanges();}


当运行到SaveChanges()的时候,会报一个异常:

"其他信息: 操作失败: 无法更改关系,因为一个或多个外键属性不可以为 null。对关系作出更改后,会将相关的外键属性设置为 null 值。如果外键不支持 null 值,则必须定义新的关系,必须向外键属性分配另一个非 null 值,或必须删除无关的对象。"

请教解决办法,谢谢


[解决办法]
先查出 Dirs以及Dirs的子集,然后直接删除了Dirs就行,这样的它的子集会一并删除。

读书人网 >.NET

热点推荐