我有以下表格
Public Class Tag
<Key()> _
Public Property TagID As Integer
Public Property Reference As Integer
Public Property Name As String
' Public Overridable Property Tags As ICollection(Of Tag)
Public Overridable Property ParentTag As Tag
Public Overridable Property TagReferences As ICollection(Of TagReference)
End Class
Public Class TagReference
<Key()> _
Public Property TagReferenceID As Integer
Public Property ReferencedID As Integer
Public Overridable Property Tag As Tag
End Class
现在我知道2个值: 表:标签{参考} 表:TagReference {ReferenceID}
我实现了存储库模式。
现在我有一个包含正确TagReferences的标签列表,但标签可能不会被删除,而是TagReferences。
Variabels = ReferenceValue,ReferenceID
IEnumerable(Of Tag) = TagRepository.GetMany(Function(el) el.Reference = ReferenceValue And el.TagReferences.Any(Function(bl) bl.ReferencedID.Equals(ReferenceID)))
如何在一行中删除包含ReferenceID的所有TagReferences?
答案 0 :(得分:1)
你做不到。 EF可以通过清除所有加载的关系(带有一些特殊的前提条件)或删除父级的级联删除来逐个删除项目。如果您需要通过某些共享值删除多个实体,则需要更复杂的代码,您可以在其中加载所有这些实体并逐个删除它们,或者您需要使用SQL(直接DELETE
命令或存储过程)。 / p>