J'ai une base de données que j'ai restaurée sur SqlExpress à partir d'un fichier bak qui se trouvait sur mon instance SQL Server Pro. J'utilise Linq pour interagir avec la base de données et je suis capable d'interroger et de mettre à jour certaines de mes tables (je n'ai pas essayé toutes). Cependant, j'ai au moins une table qui n'acceptera aucun type de mise à jour (ma table UserAddress). Si j'exécute cette requêteLa table Sql Server n'est pas mise à jour avec LINQ
TestDataContext td = new TestDataContext();
UserAddress ua = (from u in td.UserAddresses
where u.UserID == 56
select u).Single();
ua.Address1 = "ffffffffffffuuuuuuuuuuu";
td.SubmitChanges();
rien ne se passe. Aucun texte engagé dans la base de données, aucune exception, rien. Ceci est ma chaîne de connexion (Source de données = SNEE \ SQLEXPRESS; Initial Catalog = UsersDatabase; Integrated Security = True) bien que je l'ai essayé avec l'authentification SQL et ai reçu le même résultat. Est-ce que quelqu'un d'autre a déjà vécu quelque chose comme ça? Si oui, qu'avez-vous fait pour le faire fonctionner? Après avoir creusé dans le desginer j'ai remarqué quelque chose d'étrange. La classe d'adresse ressemble à ce
[Table(Name="dbo.UserAddress")]
public partial class UserAddress
cependant ma classe utilisateur ressemble à ceci
[Table(Name="dbo.User")]
public partial class User: INotifyPropertyChanging, INotifyPropertyChanged
J'ai aussi remarqué que la méthode Extensibilité Les définitions sont définis pour l'utilisateur, mais pas pour UserAddress. Ce qui donne? Je suis sûr que c'est la racine de mon problème, mais pourquoi cela s'est-il produit? J'ai essayé de créer un datacontext de test et de faire glisser la table dessus encore une fois et il ne créera toujours pas le code nécessaire.