假设我有以下实体:
Public Class Dodo
Public Property ID As Integer
Public Property Name As String
Public Overridable Property Mother As DodoMother
End Class
Public Class DodoMother
Public Property ID As Integer
Public Property Name As String
Public Property Age As Integer
End Class
我需要能够将Dodo.Mother设置为有时没有设置。
即。
Dim ndodo as dodo = db.Dodos.find(1)
ndodo.Mother = nothing
db.SaveChanges()
当我执行上面的代码时,我没有收到错误或异常或任何表明该语句无效的内容。 ndodo对象似乎没有将Mother设置为null,并且DB不会更新。
我做错了吗? 我也尝试添加db.Entry(ndodo).State = EntityState.Modified但这也不起作用。
答案 0 :(得分:1)
您需要为DodoMother的Dodo添加Id属性,并将其设置为空。
Public Property MotherId as Integer?
您的财产'母亲'是Navagation财产。 Navagation属性不是数据库表的一部分,它们是实体类的一部分。
答案 1 :(得分:0)
谢谢JLH:)
Public Property MotherID() As Nullable(Of Integer)
Public Overridable Property Mother() As DodoMother
和以下代码删除母亲
Dim ndodo as dodo = db.Dodos.find(1)
ndodo.MotherID = nothing
db.SaveChanges()