模型類:MVC 3實體框架簡單的映射
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表。我到底該怎麼做?
但更重要的是,我真的一直無法找到一個好的實體框架教程,任何建議?
--UPDATE--
的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加入兩個獨立的表「aspnet_Users」和「aspnet_Membership」 。正如模型類中所述,它們都有'UserId'列。我知道這是一個簡單的問題,我很抱歉讓我感到困惑。正如你可能知道的那樣,我剛剛開始使用EF,並且試圖用一些簡單的代碼來讓我的手「變髒」。
爲什麼用戶擁有會員資格的*集合*,爲什麼他們被稱爲* CreateDates *? – Slauma 2012-07-27 17:58:37
這是一個非常好的問題,請檢查更新的代碼 – theStig 2012-07-27 20:20:31