小编xpa*_*asd的帖子

如何在Entity Framework 6中删除多对多关系

如果将项目与多对多关系联系在一起,我就无法从数据库中删除项目

我的数据库看起来像

| [Project] | <-- | [JobInProject] | --> | [Job] |
=============     ==================     =========
| ProjectID |     | JobInProjectID |     | JobID |
|           |     | ProjectID      |     |       |
|           |     | JobID          |     |       |
Run Code Online (Sandbox Code Playgroud)

来自ProjectJob表的主键也被设置为其他表中的外键,但是我认为这不是问题,因为当我从Job表中删除项目时,它会与其他表中的所有相关项目一起被正确删除。

所有外键均由约束设置,并在更新级联时在删除级联中设置

我用来删除工作项目的代码

 Job job = await db.Jobs.FindAsync(id);
 db.Entry(job).State = EntityState.Deleted;
 await db.SaveChangesAsync();    
Run Code Online (Sandbox Code Playgroud)

和项目:

Project project = await db.Projects.FindAsync(id);
db.Entry(project).State = EntityState.Deleted;
await db.SaveChangesAsync();
Run Code Online (Sandbox Code Playgroud)

删除项目项的代码仅删除Project表中的数据,而JobInProject表不删除Job和相关项。

当我修改代码以将其删除时Project

 Project …
Run Code Online (Sandbox Code Playgroud)

c# database sql-server entity-framework

6
推荐指数
1
解决办法
5620
查看次数

标签 统计

c# ×1

database ×1

entity-framework ×1

sql-server ×1