我有一个父表和子表,它们用外键链接回父表。我试图更新父表中的行以及子表中关联的所有行。我可以更新父表行,当我尝试更新子表时,它会创建一个新行而不是更新。
因此我首先尝试使用下面的代码删除子行,然后再添加新编辑的行。我的问题是,使用remove()我的子行现在与父表没有关联,但行仍然存在?外键已变为null。
我的问题是,我如何删除这些行而不只是删除关联?
使用代码优先方法生成关系。
非常感谢
<Authorize(Roles:="Admin, Employee, User")>
Function SaveEdit(id As String) As ActionResult
Dim PreSaveBuild As PBBuilds = DirectCast(Session("object"), PBBuilds)
Dim context = New ApplicationDbContext()
Dim retrieveOrders = context.PBBuilds.Where(Function(x) x.Id = PreSaveBuild.EditBuildNo).FirstOrDefault()
retrieveOrders.Video = PreSaveBuild.Video
retrieveOrders.FasciaStyle = PreSaveBuild.FasciaStyle
retrieveOrders.FinishesPerEntrances = PreSaveBuild.FinishesPerEntrances
retrieveOrders.FrameStyle = PreSaveBuild.FrameStyle
retrieveOrders.MainEntrances = PreSaveBuild.MainEntrances
retrieveOrders.PanelStyle = PreSaveBuild.PanelStyle
retrieveOrders.SystemId = id
retrieveOrders.SystemLevel = PreSaveBuild.SystemLevel
retrieveOrders.TotalApartments = PreSaveBuild.TotalApartments
retrieveOrders.TotalBlocks = PreSaveBuild.TotalBlocks
retrieveOrders.TotalNet = PreSaveBuild.TotalNet
retrieveOrders.VideoType = PreSaveBuild.VideoType
For Each item In retrieveOrders.MainEntranceOptions.ToList()
retrieveOrders.MainEntranceOptions.Remove(item)
Next
context.SaveChanges()
Return RedirectToAction("Index", "Dashboard")
End Function
答案 0 :(得分:0)
您需要从Feature Chrome Firefox Internet Explorer ....
Basic support (Yes) 2 9
中的DbSet
删除这些对象。
修复此部分,只需重命名context
,因为我不知道正确的名称:
DbSet