我有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