モデルクラス:
public class User {
[Key]
public Guid UserId { get; set; }
[Display(Name = "User Name")]
public string UserName { get; set; }
public virtual ICollection<Asp_Membership> CreateDates { get; set; }
}
public class Asp_Membership {
[Key]
public Guid UserId { get; set; }
[Display(Name = "Date Created")]
public DateTime CreateDate { get; set; }
}
DbContext
public class UsersContext : DbContext {
public UsersContext() : base("ApplicationServices") { }
public DbSet<User> Users { get; set; }
public DbSet<Asp_Membership> Asp_Memberships { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
//mapping of Users and Membership
//what exactly do i put here to join the two tables by UserId
}
私の質問は単純なものです。おそらくお分かりのように、これらはEFが実際にどのように機能するかを理解しようとする私の最初の試みです。私がやろうとしているのは、UserIdに基づいてaspnet_Usersテーブルとaspnet_Membershipテーブルを結合することです。どのくらい正確にそれを行うことができますか?
しかし、はるかに重要なのは、私は本当に良いEntity Frameworkチュートリアルを見つけることができなかったということですが、何か推奨事項はありますか?
- アップデート -
DbContext(上記と同じ)
モデルクラス:
public class User {
[Key]
public Guid UserId { get; set; }
[Display(Name = "User Name")]
public string UserName { get; set; }
public virtual Asp_Membership asp_Membership { get; set; }
}
public class Asp_Membership {
[Key]
public Guid UserId { get; set; }
[Display(Name = "Date Created")]
public DateTime CreateDate { get; set; }
}
コントローラ:
private UsersContext db = new UsersContext();
// GET: /Users/Index
public ActionResult Index() {
return View(db.Users.ToList());
}
インデックスページ:(不要な要素を削除して...)
@model IEnumerable<ReservationPro.Models.User>
...
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.UserName)
</td>
<td>
@Html.DisplayFor(modelItem => item.asp_Membership.CreateDate)
</td>
</tr>
}
私がやろうとしているのは、デフォルトのaspnetdbから2つの別々のテーブル「aspnet_Users」と「aspnet_Membership」を結合する方法を理解することです。モデルクラスに記載されているように、どちらにも「UserId」列があります。これは簡単な質問です。混乱させて申し訳ありません。おそらくお分かりのように、私はEFを始めたばかりで、いくつかの簡単なコードで手を「汚く」しようとしています。