Vb.net 如果存在任何继承,则在保存基类时发生实体框架错误

Vb.net 如果存在任何继承,则在保存基类时发生实体框架错误,vb.net,entity-framework,inheritance,Vb.net,Entity Framework,Inheritance,我使用的是EF6.1。我有一个从向导直接从数据库生成的模型“请求”。在我的上下文文件(EMContext.vb)中 当我打字的时候 Dim db As New EMContext Dim req As New Request() With req .RequestedBy = "bar" .EventName = "Goo" .RequestedOn = Now .RequestStatusID =

我使用的是EF6.1。我有一个从向导直接从数据库生成的模型“请求”。在我的上下文文件(EMContext.vb)中

当我打字的时候

        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()
一切都按预期进行。没问题。它节省了时间。 但是,如果我添加一个类(应用程序中的任意位置)

然后运行与我得到的完全相同的代码

{“更新条目时出错。有关详细信息,请参阅内部异常。”}

查看内部异常:

{“无效的列名's'。 列名“鉴别器”无效。“}

为什么它还要查看继承的类属性呢?
顺便说一句,如果我从继承的类中删除所有属性,我仍然会得到无效列“Discriminator”错误。

然后创建一个json解析到的自定义类,然后您可以调用该实体并从此类中创建它

<Serializable()>
Public Class jSonParsedObject
  'properties that match the Entity object
  'custom properties you need for other work
End Class

你为什么这么做?目的是什么?如果您想向实体类添加更多功能,可以创建一个
部分类
。我这样做是为了从JSON调用传递数据,该调用包含的不仅仅是请求。在服务器端,我从继承的数据中分离出原始的请求类数据,并对其执行多个操作。然而,我不明白为什么在代码中的任何地方添加一个从基继承的类会破坏父类。当继承的类甚至没有被引用时,创建单独的类如何对基类产生任何影响?我不想向基类添加功能。我想我可以创建另一个类来声明其中的请求类,然后添加其他2个属性,但这并不能改变这样一个事实,即这种行为似乎完全错误。然后创建一个json解析到的自定义类,然后您可以调用该实体并从该类生成它。这可能会起作用,但这意味着创建一个自定义对象/类,这是我不想做的。不过,主要问题仍然存在。为什么创建一个继承类会破坏EF?这只不过是创建一个继承类。我不知道你的问题的答案,到目前为止没有其他人插话。我感谢你的建议。谢谢。看来这在EF是不可能的。这是最好的建议,因为我最终需要构建一个单独的类,该类被称为DTO(数据传输对象)。
    Class foo
       Inherits Request

       Public Property s As String
    End Class
<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
...