J'ai 2 tables Utilisateurs et Requêtes. Ils sont connectés via FK (UserId) dans le tableau Requêtes. Je dois ajouter des requêtes ajoutées, par exemple, par l'utilisateur avec le login "Bob" à tous les utilisateurs.Problème Linq to Sql
Voici un morceau de code j'utilise:
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;
}
}
Il jette une erreur lors de l'ajout: L'instruction INSERT en conflit avec la contrainte FOREIGN KEY "FK_Queries_Users". Le conflit s'est produit dans la base de données "OLAPUsers", la table "dbo.Users", la colonne "UserId".
Comment puis-je résoudre ce problème ou archiver l'objectif que j'ai?
Votre UserDataClassesDataContext fonctionne correctement? Si la propriété UserId n'est pas définie correctement, cela peut provoquer cela. – JamesMLV
Définissez un point d'arrêt et vérifiez la valeur de user.UserId pendant que vous parcourez. Assurez-vous que les valeurs sont présentes et correspondent à un UserId valide dans la base de données. – TimS