我使用的是EF 6.1。我从我的数据库直接从向导构建了一个模型“请求”。在我的上下文文件(EMContext.vb)中我有
Public Overridable Property Requests As DbSet(Of Request)
当我输入
时 Dim db As New EMContext
Dim req As New Request()
With req
.RequestedBy = "bar"
.EventName = "Goo"
.RequestedOn = Now
.RequestStatusID = 1
End With
db.Requests.Add(req)
db.SaveChanges()
一切都按预期完成。没问题。它节省了。 但是,如果我添加一个类(在应用程序中的任何位置)
Class foo
Inherits Request
Public Property s As String
End Class
然后运行完全相同的代码
{“更新条目时发生错误。有关详细信息,请参阅内部异常。”}
查看内部异常:
{“无效的列名称'。 列名称'Discriminator'无效。“}
为什么它甚至会查看继承的类属性? 顺便说一句,如果我从继承的类中删除所有属性,我仍然会收到无效列'判别器'错误。
答案 0 :(得分:0)
然后创建一个json解析的自定义类,然后你可以调用Entity并从这个类中创建它。
<Serializable()>
Public Class jSonParsedObject
'properties that match the Entity object
'custom properties you need for other work
End Class
用法:
Dim jsonObj As jSonParsedObject = SomeMethodThatParsesAndReturnsData()
Dim req As New Request()
With req
.RequestedBy = jsonObj.RequestedBy
.EventName = jsonObj.EventName
.RequestedOn = jsonObj.RequestedOn
.RequestStatusID = jsonObj.RequestStatusID
End With
...