という簡単な質問が作成されます。WithEventsとしてフラグが立てられたプライベートフィールドは、Code Firstによって取り込まれ、自動外部
Public Class MyClass
Private WithEvents pPerClass As PersistableClass
Public Overridable Property PerClass() As PersistableClass
Get
Return pPerClass
End Get
Set(value As PersistableClass)
pPerClass= value
End Set
End Property
'Other code
'...
End Class
と
Public Class PersistableClass
Public Property PersistableClassID as Integer
'Other methods and properties
'...
End Class
のMyClassが永続化とDBが正常にコードファーストを使用して作成された場合は、以下の2つの外部キーがMyClassesを指しテーブルに作成されます。次のコードを考える
:
- pPerClass_PersistableClassID (FK、INT、NULL)(NULL、FK、INT)
- PerClass_PersistableClassID
最初不思議プライベートフィールドから得られた第2の鍵の複製、です。
WithEventsキーワードを削除すると、pPerClass_PersistableClassIDキーは作成されません。
私はEFの新人ですが、私には奇妙な行動があるようです。
何らかの理由がありますか?
私はエンティティフレームワークを使用していませんが、永続化されるイベント用に作成されるデリゲートのバッキングフィールドと関係している可能性があります(オブジェクトのシリアル化時に問題になることもあります)。 [このリンク](http://www.lhotka.net/WeBlog/PermaLink.aspx?guid=776f44e8-aaec-4845-b649-e0d840e6de2c)をご覧ください。 –
ありがとうポール、私はリンクを見てきました、それは意味があるようです。データベースの作成中にEFが実際に何をするかを調べようとします。 – APaglia