3
私はasp.net、mvc3およびエンティティフレームワークを初めて使いました。 私はエンティティフレームワークとコードファーストでmvc3 programmを開発しようとしています。 多対多の関係を持つ2つのクラスがあります。MVC3エンティティフレームワーク多対多の追加列
「ユーザー」と呼ばれる1つのクラスと「コース」があります。
public class Course : IValidatableObject
{
[...]
public virtual ICollection<User> Users { get; set; }
[...]
}
public class User : IValidatableObject
{
[...]
public virtual ICollection<Course> Courses { get; set; }
[...]
}
これは機能します。しかし今、私はコースの登録状況を保護する追加のフィールドが必要です。 わからない簡単な方法はありますか?
私はそれをこの方法を試してみました:
public class Course : IValidatableObject
{
[...]
public virtual ICollection<CourseUser> CourseUsers { get; set; }
[...]
}
public class User : IValidatableObject
{
[...]
public virtual ICollection<CourseUser> CourseUsers { get; set; }
[...]
}
public class CourseUser
{
[Key, ForeignKey("Course"), Column(Order = 0)]
public int Course_ID { get; set; }
[Key, ForeignKey("User"), Column(Order = 1)]
public string User_ID { get; set; }
public int Status { get; set; } //{ pending, approved }
public virtual Course Course { get; set; }
public virtual User User { get; set; }
}
しかし、これは、関連するデータを追加したり、編集することがはるかに困難になります。 たとえば、コースを作成したユーザーをCourseUsers
テーブルに自動的に追加するようには管理していませんでした。
私を助けるためのTHX
答えではありません。 関連テーブルを更新する手助けをしてくれるかもしれません。 'Membership.GetUser()。ProviderUserKey.ToString()'でuser_idを取得しましたが、新しいコースの作成時に関連テーブルを更新する方法はわかりません。 www.asp.netで多くのチュートリアルを読んでいますが、少し混乱していると思います。 – Gesh
これはここで動作する方法ではありません。あなたは質問をして答えを得ます。新しい質問がある場合は別の質問としてそれを聞いてください。コメントは、無関係の別の質問をするためのものではありません。 –