首页 > 解决方案 > 在 C# 中清除数据透视表

问题描述

我有一张活动助理表和一张活动期间可以执行的任务表。每个助理都可以在活动中执行任意数量的任务,这就是我的数据库所反映的。

Table 1      Table 2         Table 3
----------   -------------   ----------
assistants   assistanttask   tasks
id           assistant_id    id
name         task_id         name

我知道为了将任务附加到助手,我可以执行以下操作:assistant.Tasks.Add(task);

我也知道要删除一项任务,我可以编写以下代码:assistant.Tasks.Remove(task);

现在我的问题是,批量分离呢?我想删除助手的所有任务。类似assistant.Tasks.RemoveAll();但当然不存在的东西。有没有超级简单的方法呢?

标签: c#pivotrelationship

解决方案


如果使用 EF5 或 EF6,您可以使用 ExecuteCommand,就像这样

using (var context = new DataDb())
{
     var ctx = ((System.Data.Entity.Infrastructure.IObjectContextAdapter)context).ObjectContext;
     ctx.ExecuteStoreCommand("DELETE FROM [TableName] WHERE Id={0}", Id);
}

推荐阅读