获取错误"无法添加已存在的实体".在没有过程的情况下将表的值插入到DB中

Rah*_*jan 3 c# linq

我将一个记录列表插入到DB表中,使用Linq到sql,如下所示:

//my DataContext Class
 using (VTMMedicalDBDataContext objVTMMedicalDBDataContext = new VTMMedicalDBDataContext())
 {
     ReadOnlyCollection<TimeZoneInfo> objTimeZones = null;

     objTimeZones = TimeZoneInfo.GetSystemTimeZones();

     if (objTimeZones.Count > 0)
     {
         //List<TimeZoneMaster> listTimeZones = new List<TimeZoneMaster>();
         TimeZoneMaster objTimeZoneMaster = new TimeZoneMaster();

         foreach (var timezone in objTimeZones.ToList())
         {

             objTimeZoneMaster.TimeZoneName = timezone.DisplayName;

             var localName = timezone.DisplayName;

             objTimeZoneMaster.TimeZoneOffsetInMinutes = Convert.ToInt32(timezone.BaseUtcOffset.TotalMinutes);                      


             objVTMMedicalDBDataContext.TimeZoneMasters.InsertOnSubmit(objTimeZoneMaster);
             objVTMMedicalDBDataContext.SubmitChanges();


         }

     }
}   
Run Code Online (Sandbox Code Playgroud)

我有一个主键,但我已经把它作为AutoGeneratd在DBML Nullable中为true,因为它是假的.我无法摆脱它...请建议一些方法.

Rah*_*jan 9

最后经过很多麻烦我得到了一个新概念的答案..

对于所有面临类似问题的人,这里有一个明确的解决方案:

你需要创建'Table'类的对象(你要在DB中更新哪个对象),在循环内(*为每个,为或任何其他..),以便不更新相同的记录,每个对象使用一个不同的内存位置(因为本地实例仅在循环中被销毁..)*