ICollections方法: UPDATE:
如果我理解正確的話,你有很多一對多關係(組有許多用戶,用戶都可以在許多羣體),在這種情況下,代碼應該是這樣的:
public class RelationExampleContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<SubGroup> SubGroups { get; set; }
}
public class User
{
[Key]
public int ID { get; set; }
public string Forename { get; set; }
public string Surname { get; set; }
public ICollection<SubGroup> SubGroups { get; set; }
}
public class SubGroup
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
public ICollection<User> Users { get; set; }
}
將用戶添加到組例如:
var db = new RelationExampleContext();
var subGroups = new List<SubGroup>
{
new SubGroup() {Name = "Subgroup1"},
new SubGroup() {Name = "Subgroup2"}
};
var users = new List<User>
{
new User()
{
Forename = "Forename1",
Surname = "Surname1",
SubGroups = new List<SubGroup>
{
subGroups.First(),
subGroups.Last()
}
},
new User()
{
Forename = "Forename2",
Surname = "Surname2",
SubGroups = new List<SubGroup>
{
subGroups.First()
}
}
};
foreach (var subGroup in subGroups)
{
db.SubGroups.Add(subGroup);
}
foreach (var user in users)
{
db.Users.Add(user);
}
db.SaveChanges();
這是一個偉大的答覆想法,正是我一直在尋找 - 謝謝!在Visual Studio 2010中需要做什麼來查看像上面發佈的關係圖? – markp3rry
要顯示圖表,您應該生成edmx模型。但是如果您選擇CodeFirst方法,edmx模型不需要。 edmx模型經常與DataBase第一種方法或Model首先使用。但是,如果您仍然想要添加edmx模型,可以在菜單中對其進行修改:添加>新建項目> ADO.NET實體數據模型>從數據庫生成。 – testCoder
我在ContextInitializer中播種了一些數據。我創建了兩個新用戶並將其添加到上下文中。然後我創建了兩個新的SubGroups,併爲每個添加了一個新的List()。第一個用戶是組1和組2的成員,第二個是組1的成員。但是,當我執行查詢時,它僅顯示組1的SubGroupID。我究竟做錯了什麼? –
markp3rry