如何解決多對(duì)多關(guān)系表無法更新與插入的問題,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、樺甸網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為樺甸等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。在EF里,我們設(shè)計(jì)模型時(shí),會(huì)設(shè)計(jì)到多對(duì)多關(guān)系,在EF里會(huì)把這種關(guān)系會(huì)轉(zhuǎn)成兩個(gè)一對(duì)多的關(guān)系表,這是比較友好的,因?yàn)槎鄬?duì)多來說,對(duì)于業(yè)務(wù)本身沒什么意思,所以隱藏了,沒什么壞處,但對(duì)于這個(gè)隱藏來說,對(duì)開發(fā)人員來講你就無法主動(dòng)控制這張關(guān)系表了,而需要使用EF的update來更新主表的同時(shí)去更新關(guān)系表,這對(duì)于初學(xué)者會(huì)出現(xiàn)一些問題,今天說的就是多對(duì)多關(guān)系無法更新和插入的問題。
數(shù)據(jù)結(jié)構(gòu)
public partial class WebManageRoles : Lind.DDD.Domain.Entity { public WebManageRoles() { this.WebManageMenus = new List(); this.WebManageUsers = new List (); } [DisplayName("名稱"), Required] public string RoleName { get; set; } [DisplayName("關(guān)于")] public string About { get; set; } [DisplayName("排序"), Required] public int SortNumber { get; set; } [DisplayName("最后操作人")] public string Operator { get; set; } [DisplayName("權(quán)限"), Required] public int OperatorAuthority { get; set; } [DisplayName("部門"), Required] public int DepartmentID { get; set; } public virtual WebDepartments WebDepartments { get; set; } public virtual ICollection WebManageMenus { get; set; } public virtual ICollection WebManageUsers { get; set; } }
關(guān)于AutoDetectChangesEnabled
參考:/tupian/20230522/>old.WebManageMenus = menuRepository.GetModel(i => menu.Contains(i.Id)).ToList(); old.DepartmentID = dept; old.RoleName = entity.RoleName; old.SortNumber = entity.SortNumber; old.About = entity.About; old.DataUpdateDateTime = DateTime.Now; roleRepository.Update(old);
在數(shù)據(jù)上下文中的設(shè)置
public ManagerContext() : base("DefaultConnection") { this.Configuration.AutoDetectChangesEnabled = true;//對(duì)多對(duì)多,一對(duì)多進(jìn)行curd操作時(shí)需要為true this.Configuration.LazyLoadingEnabled = false; this.Configuration.ProxyCreationEnabled = false;//禁止動(dòng)態(tài)攔截System.Data.Entity.DynamicProxies. }
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。