我知道如何更新,插入和删除与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