【发布时间】:2017-05-29 22:02:38
【问题描述】:
我需要将 adin 用户添加到他们不存在的表(和子表)中。
我有以下代码引发错误:“集合已修改;枚举操作可能无法执行。”在“_userPrefsContext.UserRecs.Add(userRec);”行上
var allUserRecs = _userPrefsContext.UserRecs.ToList();
foreach (string adminUser in adminUsers.Where(x => x.Length > 0))
{
domain = adminUser.Split('\\')[0];
login = adminUser.Split('\\')[1];
var userRec = new Domain.UserPrefs.BamUser()
{
AdLogonDomain = domain,
AdLogonId = login,
UserViews = colUserView
};
if (allUserRecs.Where(x => x.AdLogonDomain == domain
&& x.AdLogonId == login).Count() == 0)
{
//don't currently have a user rec for this login so create one
_userPrefsContext.UserRecs.Add(userRec);
}
}
_userPrefsContext.SaveChanges();
我在 SO 上看到过类似的帖子,但在每种情况下,他们似乎都在迭代他们正在添加的集合。就我而言,我只是想遍历一个字符串列表。
我哪里做错了?
现在编辑成如下(还是一样的错误):
List<string> adminUsers = WebConfigurationManager.AppSettings["AdminUsers"].Split(';').ToList();
adminUsers = adminUsers.Where(x => x.Length > 0).ToList();
string domain = "", login = "";
string userViewString = Helpers.ViewNames.UserView.ToString();
int viewId = _userPrefsContext.ViewRecs.Where(x => x.Name == userViewString).Select(x => x.BamViewId).Single();
Domain.UserPrefs.UserView userView = new Domain.UserPrefs.UserView()
{
BamViewId = viewId
};
List<Domain.UserPrefs.UserView> colUserView = new List<Domain.UserPrefs.UserView>();
colUserView.Add(userView);
var allUserRecs = _userPrefsContext.UserRecs.ToList();
string[] users = new string[adminUsers.Count()];
int y = 0;
foreach(string user in adminUsers)
{
users[y] = user;
y++;
}
int total = adminUsers.Count;
for (var i = 0; i < total; i++)
{
domain = users[i].Split('\\')[0];
login = users[i].Split('\\')[1];
if (allUserRecs.Where(x => x.AdLogonDomain == domain
&& x.AdLogonId == login).Count() == 0)
{
//don't currently have a user rec for this login so create one
_userPrefsContext.UserRecs.Add(new Domain.UserPrefs.BamUser()
{
AdLogonDomain = domain,
AdLogonId = login,
UserViews = colUserView
});
}
}
_userPrefsContext.SaveChanges();
【问题讨论】:
-
我只是想遍历一个字符串列表 -
adminUsers.Where(x => x.Length > 0)绝对是不是一个列表 -
很好发现 - 谢谢
标签: entity-framework entity-framework-6