私はEntity Framework 4コードの最初のアプローチを使用してASP MVC 3でデータベースを設計していますが、 。私は以下のようにPOCOクラスを持っている:同じオブジェクトが正しく構築されていない場合、1対1と多対多の関係
public class User
{
[Key]
public Guid UserID { get; set; }
public string UserName { get; set; }
public DateTime CreationDate { get; set; }
public string Email { get; set; }
public int Points { get; set; }
public Session ActiveSession { get; set; }
public ICollection<Session> InSessions { get; set; }
}
Session
とそのプロパティの一つとしてICollection<User>
で、他の場所で定義された私のモデルクラスの別の一つとして。 User
クラスからpublic Session ActiveSession { get; set; }
プロパティを削除すると、多対多マッピングとUserSessions
中間テーブルが正しく構築されますが、ActiveSession
の1対1マッピングを再度追加すると、多対多中間テーブルは構築されない。代わりにUsers
テーブルにはActiveSession
とInSessions
プロパティのそれぞれに対してSessions
テーブルへの単一の外部キーがあります。これがなぜ起こっているのか?
設定する必要がありますか? – Eranga
@Erangaこれはかなりです。私はedmxモデルを持たないように、コードの最初のアプローチを使用しています。これまでのところ、流暢なAPIや属性をマッピングする必要はありませんでした。 EFは自分のデータベースを構築しているので、既存のテーブルにマップする必要はありません。 – Kongress