我在sqlserver的3個實體,我與Visual Studio的嚮導映射添加值「多對多」中的EntityFramework關係
三個實體包的類別和packages_categories,其中packages_categories一個多對多的關係。 映射這些實體我歌廳2班後至極的分類和包裝,他們是這樣的: 公共部分類包裝 { 公共配套(){ this.Categories =新的HashSet(); }
public string PackageSid { get; set; }
public string PackageName { get; set; }
public virtual ICollection<Category> Categories { get; set; }
}
公共部分類分類01{ 公共類別() { this.Packages =新的HashSet(); }
public int CategoryId { get; set; }
public string CategoryName { get; set; }
public bool isDefault { get; set; }
public virtual ICollection<Package> Packages { get; set; }
}
,我得到什麼了許多的實體一對多的關係(這個packages_categories的) 大廳東西的偉大工程,當我嘗試從包獲取信息,例如,然後每次我嘗試要查詢一個包,我會得到包含它的ist包和相同的東西,當我嘗試獲取包的類別。
問題是,當我嘗試更新包,並把它添加的類別,則類別將被添加不僅對entitiy packages_categories還要類別自
代碼示例:
var categoriesList=List<Categoriy>();
categoriesList.Add(new Cateogry{
categoryname="catem",
IsDefault=false,
CategoryId=2332
});
var _packagesContext=new DBPackages();
_packagesContext.Add(new Packages{
packageSid="Sid blaaa.",
PackageName="TestPackage",
Categories=categoriesList
});
現在,在這個代碼與一個類別中的包將被添加到數據庫,但如果類已經有一個會拋出異常,一個類別已經存在(可以假設它已經存在,這意味着它試圖將它添加到類別自我),
我該如何解決這樣的問題?我在做什麼錯:( 感謝名單非常