具有foreach循环的C#LINQ,在循环退出后重置值

时间:2018-07-04 06:46:15

标签: c# entity-framework linq linq-to-sql

我有这样的代码,但是每当为ConfigList设置一个值时,一旦foreach循环退出,该值就会重置为默认值。

using (var dbEntities = new DBEntities())
            {
                using (var dbContextTransaction = dbEntities.Database.BeginTransaction())
                {
                    try
                    {
                        var ConfigList = dbEntities.Configs.Where(y => y.DeviceId == deviceId).ToList();

                        if (ConfigList.Any())
                        {
                            foreach (InfoModel ConfigReceived in InfoModelCustom.Property)
                            {
                                ConfigList.Where(x => x.Id == ConfigReceived.Id
                                                    && x.PropertyId == ConfigReceived.PropertyId 
                                                    && x.GroupId == ConfigReceived.GroupId 
                                                    && x.TypeId == ConfigReceived.TypeId).FirstOrDefault().Value = ConfigReceived.Value;
                            }
                        }

                        dbEntities.SaveChanges();
                        dbContextTransaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        dbContextTransaction.Rollback();
                    }
                }
            }

0 个答案:

没有答案