1

我在我正在开发的实用程序上使用 EF,遇到了一个相当令人沮丧的问题。我有三个表:Template、Target 和 TemplateTarget,但是当我将这三个表添加到 EDMX 时,我最终只得到了两个表,因为 TemplateTarget 是一个包含 Template 和 Target 之间关系的查找表。显然 EF 足够聪明,可以解决这个问题,但如果我想打破(删除)一段关系,就会出现问题。

当我发出删除命令时,在我给定的场景中,我需要从查找表中删除,而不是从物理表本身中删除。“正确”的答案是重新设计数据模型,但这不是目前可以做的事情。无论如何强制 EF 将这个查找表分开,以便我可以直接针对它发出删除,或者我是否将被限制为直接向基础表发出 DELETE 语句?

4

1 回答 1

2

如果您只想从查找表中删除,则意味着您要删除以这种方式完成的关系:

template.Targets.Remove(target);

您的模板必须附加到上下文中,并且目标必须是相关实体。它只会从数据库中删除关系,而不是那些实体。

于 2012-05-04T08:24:24.437 回答