У меня есть 2 таблицы пользователей и запросы. Они подключаются через FK (UserId) в таблице Queries. Мне нужно добавить запросы, добавленные, например, пользователем с логином «Боб» для всех пользователей.Задача 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
Установите точку останова и проверьте значение user.UserId при повторении. Убедитесь, что значения присутствуют и соответствуют действительному UserId в базе данных. – TimS