0

次のPOCOクラスがあります。

Public Class CompetitionSubscription
    Public Property ID As Long
    Public Overridable Property CompetitionID As Long
    Public Overridable Property CompetitionPlayerID As Long
    Public Property CompetitionStrength As Short?
    Public Property StrengthWithinSection As Short?
End Class

<NotMapped()>
Public Class FullCompetitionSubscription
    Inherits CompetitionSubscription

    Public Property Competition As Competition
    Public Property CompetitionPlayer As CompetitionPlayer

End Class

そして、次のような 1 つのテーブルだけの DbContext:

Public Class CompetitionSubscriptionsDB
    Inherits DbContext

    Public Property CompetitionSubscriptions As DbSet(Of CompetitionSubscription)

End Class

次のような単体テストを作成しました。

<TestMethod()>
Public Sub AddSubscriptionToDatabase()

     Using db = New CompetitionSubscriptionsDB
         Dim subscription = New FullCompetitionSubscription With
                          {.CompetitionID = 1,
                           .CompetitionPlayerID = 1,
                           .CompetitionStrength = 2,
                           .StrengthWithinSection = 12}
         db.CompetitionSubscriptions.Add(DirectCast(subscription, CompetitionSubscription))
         db.SaveChanges()
     End Using

 End Sub

これは次のエラーで失敗します (オランダ語から翻訳されているため、正確なメッセージではない可能性があります): EntityType CompetitionSubscriptionsLib.FullCompetitionSubscription のメタデータが見つかりません

FullCompetitionSubscriptionクラスは属性で装飾されているので、<NotMapped>エラーメッセージは理解できますが、ポイントは、をベースとしてDirectCastを「販売」することでした( のタイプをテストパスに変更した場合) 。FullCompetitionSubscriptionCompetitionSubscriptionDbContextsubscriptionCompetitionSubscription

どこが間違っていますか?

4

0 に答える 0