我知道如何更新,插入和刪除與entityframework,但在這種情況下,我不知道該怎麼做。實體框架更新
在這種情況下,我有3個表:表A中的表B和具有2列的表AB,一個是表A的foreing密鑰和一個是表B的foreing鍵
實體框架只顯示錶A和B,所以我如何只更新表AB的內容?
我試過使用實體A和實體B中的引用,但它給了我一個異常,說實體集AB沒有插入功能和刪除功能。
我知道如何更新,插入和刪除與entityframework,但在這種情況下,我不知道該怎麼做。實體框架更新
在這種情況下,我有3個表:表A中的表B和具有2列的表AB,一個是表A的foreing密鑰和一個是表B的foreing鍵
實體框架只顯示錶A和B,所以我如何只更新表AB的內容?
我試過使用實體A和實體B中的引用,但它給了我一個異常,說實體集AB沒有插入功能和刪除功能。
你儘量讓
Public Virtual List<int> Ids
在你的「A」和「B」類收回所有關聯
對於插入,你會創建表A的記錄,然後加入表B記錄了插入到A中創建的項目.EF將處理剩下的部分。
var tableA = new TableAtype { Description = "blah", etc.};
tableA.TableBtype.Add(new TableBtype { Property1 = "foo", Property2 = "bar"};
yourContext.AddToTableAtype(tableA);
yourContext.SaveChanges();
我會更具體的使用我的項目的代碼由TheGeekYouNeed
public void ModificaAbilitazioni(int IdGruppoAnagrafica, List<DefAbilitazioni> AbilitazioniList)
{
GruppiAnag gruppo = (from g in entities.GruppiAnags
where g.IdGruppoAnag == IdGruppoAnagrafica
select g).First();
List<DefAbilitazioni> tutteAbilitazioni = GetTutteAbilitazioni();
for (int i = 0; i < AbilitazioniList.Count; i++)
{
if (tutteAbilitazioni[i].GruppiAnags.Contains(gruppo))
{
tutteAbilitazioni[i].GruppiAnags.Remove(gruppo);
}
}
foreach (DefAbilitazioni abilitazione in AbilitazioniList)
{
for (int i = 0; i < tutteAbilitazioni.Count; i++)
{
if (tutteAbilitazioni[i].IdAbilitazione == abilitazione.IdAbilitazione)
{
tutteAbilitazioni[i].GruppiAnags.Add(gruppo);
}
}
}
entities.SaveChanges();
}
OK問...這裏是
這種方法應該改變privilegies賬戶。
首先我使用他的ID恢復帳戶,比我恢復所有的優惠,如果在他們的參考他們有帳戶恢復,然後我從參考中刪除它。 這種方式帳戶沒有任何優惠。現在我已經通過調用該方法的優勢,並在theri參考我把賬戶。 (只是一個擦和筆芯我只是想現在...)
我也反過來,抹在帳戶中的優惠引用,並重新填寫它們,但在兩種方式將無法正常工作,在第一個案例中說第三個實體(AB)沒有插入功能
我已經解決了這個問題,問題是我正在處理的對象沒有附加到數據庫,我試過附裝這樣
foreach (DefAbilitazioni abilitazione in abilitazioni)
{
entities.Attach(abilitazione);
gruppo.DefAbilitazionis.Add(abilitazione);
}
,但它不工作,它說,是的EntityKey空,也許,如果有人給我使用attach我會盡力,現在更改我的代碼的一個例子,我s此
public void ModificaAbilitazioni(int IdGruppoAnagrafica, List<DefAbilitazioni> AbilitazioniList)
{
GruppiAnag gruppo = (from g in entities.GruppiAnags
where g.IdGruppoAnag == IdGruppoAnagrafica
select g).First();
IEnumerable<int> idAbilitazioni = from id in AbilitazioniList
select id.IdAbilitazione;
List<DefAbilitazioni> abilitazioni = (from abilitazione in entities.DefAbilitazionis
where idAbilitazioni.Contains(abilitazione.IdAbilitazione)
select abilitazione).ToList();
gruppo.DefAbilitazionis.Clear();
foreach (DefAbilitazioni abilitazione in abilitazioni)
{
gruppo.DefAbilitazionis.Add(abilitazione);
}
entities.SaveChanges();
}
感謝狀,但我沒有與刀片我有更新 – zizzi 2012-04-13 14:54:37
問題描述你已經嘗試什麼,什麼問題是問題。 – TheGeekYouNeed 2012-04-13 14:56:17
我不能回答我的問題,我必須等待7個小時,我會保存我寫的內容,並且我會在發佈代碼時發佈。 – zizzi 2012-04-13 15:18:48