0

mvc 3ミュージックストアの例では、次のことを行います。

Public Class Album

Public Property GenreId AS Integer

...

Public Overidable Property Genre as Genre

End Class

エンティティフレームワークはかなり洗練されているようで、GenreIdがGenreテーブルのPKであることを認識しています。したがって、「Album」のSQLテーブルには列としてGenreIdがあり、アルバムstoreDB.album.find(x)をロードすると、「Genre」エンティティもロードされます。

私の質問は、同じタイプの2番目のオブジェクトが必要な場合はどうなるかということです。たとえば、各アルバムにprimaryGenreとsecondaryGenreがある場合はどうなりますか。こんなことができると思います。

Public Class Album

Public Property MainGenreId As Integer
Public Overidable Property MainGenre As Genre

Public Property BackupGenreId As Integer
Public Overidable Property BackupGenre as Genre

End Class

そして私もこれを試しました...

Public Class Album

Public Property MainGenre_GenreId As Integer
Public Overidable Property MainGenre As Genre

Public Property BackupGenre_GenreId As Integer
Public Overidable Property BackupGenre as Genre

End Class

ただし、これらのオプションはいずれも正しく機能していません。storeDB.album.find(x)を介してアルバムをロードすると、MainGenreとBackupGenreが自動的に読み込まれるように、誰かが私を正しい方向に向けることができますか?ありがとうございました。

4

1 に答える 1

1

関係を構成するには、データ注釈またはFluentAPIのいずれかを使用する必要があります。MainGenreAlbums名前付きとエンティティBackupGenreAlbums上に2つのコレクションプロパティがあるとすると、 and属性を使用して関係を構成できます。GenreForeignKeyInverseProperty

Public Class Album

  Public Property MainGenreId As Integer

  <ForeignKey("MainGenreId")>
  <InverseProperty("MainGenreAlbums")>
  Public Overidable Property MainGenre As Genre

  Public Property BackupGenreId As Integer

  <ForeignKey("BackupGenreId")>
  <InverseProperty("BackupGenreAlbums")>
  Public Overidable Property BackupGenre as Genre

End Class
于 2012-04-12T13:03:31.967 に答える