我有2个表用户和查询。它们通过查询表中的FK(UserId)连接。 我需要添加查询添加,例如,用户登录“鲍勃”给所有用户。Linq to Sql问题
下面是一段代码,我使用:
public bool SaveUserQuery(string userName, Query query) {
var db = new UserDataClassesDataContext();
Table<User> users = db.Users;
if (userName.ToLower() == "bob") {
foreach (var user in users) {
var tempQuery = new Query();
tempQuery.Name = query.Name;
tempQuery.FolderName = query.FolderName;
tempQuery.Layout = query.Layout;
tempQuery.Description = query.Description;
tempQuery.Query1 = query.Query1;
tempQuery.UserID = user.UserId;
try {
user.Queries.Add(q);
}
catch (Exception e) {
Logger.Log.Error("attach", e);
}
}
db.SubmitChanges();
return true;
}
}
它增加时,会抛出错误: INSERT语句冲突与外键约束“FK_Queries_Users”。冲突发生在数据库“OLAPUsers”,表“dbo.Users”,列'UserId'中。
我该如何解决这个问题或归档我的目标?
是您的UserDataClassesDataContext正常工作?如果UserId属性设置不正确,可能会导致此问题。 – JamesMLV 2010-09-13 16:28:38
设置一个断点并在迭代时检查user.UserId的值。确保值存在并对应于数据库中的有效UserId。 – TimS 2010-09-13 16:31:11