EF4 STE的多对多

时间:2014-01-28 08:47:49

标签: c# entity-framework-4 poco

任何人都可以指出我正朝这个问题走向正确的方向。基本上我有很多关系,当我调用SaveChanges()时,连接表永远不会被填充。 ReferenceData是生成的POCO,referenceDataSets是List。基本上这些数据是通过USB Key传输的。 context是目标数据库的DBContext。

foreach (ReferenceData refSet in referenceDataSets)
            {
                // check if the reference data set already exists
                ReferenceData existing = context.ReferenceDatas
                    .Include("ReferenceDataValues")
                    .Where(o => o.Name == refSet.Name)
                    .SingleOrDefault();

                // if reference data set already exists
                if (existing != null)
                {
                    while (existing.ReferenceDataValues.Count > 0)
                    {
                        context.ReferenceDataValues.DeleteObject(existing.ReferenceDataValues[0]);
                    }
                    while (refSet.ReferenceDataValues.Count > 0)
                    {
                        existing.ReferenceDataValues.Add(refSet.ReferenceDataValues[0]);
                    }
                    context.ReferenceDatas.ApplyChanges(existing);
                }
                else
                {
                    //if this reference dataset doesnt exist
                    //issue exists here as many to many does not get populated.
                    context.ReferenceDatas.AddObject(refSet);              
                }
            }
            context.SaveChanges();

任何帮助非常感谢。 杰

0 个答案:

没有答案