J'utilise LinqToSql comme vous l'avez vu sur le sujet.Un membre qui est calculé ou généré par la base de données ne peut pas être modifié
J'ai une table et quelques colonnes dedans. Il y a une colonne pour montrer l'état d'enregistrement.
0 : Not approved yet
1 : Approved
2 : Deleted
Lorsque l'enregistrement est inséré en premier, sa valeur est 0 (valeur par défaut). Lorsque l'utilisateur a approuvé sa valeur est en train de changer à 1, mais que je reçois cette erreur:
Value of member 'state' of an object of type 'News' changed.
A member that is computed or generated by the database cannot be changed.
Voici le code de test:
DataClassesDataContext dc = new DataClassesDataContext();
var b = dc.GetTable<Ekler>().Where(p => p.ek_id == 1).FirstOrDefault();
if (b!=null)
{
b.state= "1";
dc.SubmitChanges();
}
Que dois-je faire pour passer ce problème?
Je crée une classe de contexte pour mon projet en héritant de DataContext. J'écris donc manuellement toutes les classes d'entités et leurs propriétés de colonnes. J'ai changé son attribut IsDbGenerated (en fait j'ai supprimé). Maintenant, je peux changer sa valeur sans avoir d'erreur mais quand j'ai inséré un nouvel enregistrement dans la table, la colonne "state" obtient la valeur NULL. – uzay95
@ uzay95: Eh bien, je regarderais de près tout ce que vous avez spécifié dans le contexte de données - et à quoi ressemble le SQL généré. Cela semble définitivement être un problème dans la façon dont vous avez configuré le contexte. –