私は Entity Framework 5 を使用しており、既存のデータベース スキーマの上で使用したいコード ファースト モデルを作成しています。したがって、スキーマの設計を制御することはできません。
私は2つのテーブルを持っていmatters
ますusers
. テーブルには、システムのusers
実際のユーザーであるユーザー アカウントが含まれています。matters
テーブルには、スケジュールされた予定などに似たデータが含まれています。
テーブルには、という名前の列にmatters
への外部キーがあります。この列には、「ねえ、この行はこのの を指定しています」とだけ書かれています。これはオプションのキーです。案件にマネージャーがいる必要はありません。users
manager
users
manager
matter
のレコードのモデルには、users
これらの問題にマップするプロパティは必要ありません。
マッピングでの現在の試みは次のようになります。
modelBuilder.Entity<Matter>().HasOptional(m => m.ProjectManager).WithRequired().Map(m => m.MapKey("project_manager"));
それでMatter
、モデルのプロパティにオプションのFKがありProjectManager
、ユーザーが存在する必要があり、matters
テーブルの列名がproject_manager
.
ただし、これは機能せず、生成された SQL は正しくありませんが、探しているものを取得する方法がわかりません。私がSQLを書くとしたら、次のようになります
SELECT matters.*, users.*
FROM matters
LEFT JOIN users ON matters.project_manager = users.id