Je le modèle de données simple:LINQ to SQL mise à jour ne fonctionne pas correctement
Resource
{
ResourceId
ResourceName
}
UsageType
{
UsageTypeId
UsageTypeName
}
Usage
{
UsageId
UsageTypeId
ResourceTypeId
Percentage
}
Quand je change les UsageTypeId
, ResourceTypeId
et Percentage
valeurs sur un objet Usage
et que je lance SubmitChanges()
LINQ to SQL émet uniquement une instruction SQL pour modifier la valeur Percentage
(surveillée via SQL Profiler).
Si je parcours le code, je vois les propriétés définies pour UsageTypeId
et ResourceTypeId
avec les valeurs correctes, mais elles ne le font jamais dans la base de données. Les propriétés conservent les valeurs correctes jusqu'à ce que SubmitChanges()
soit appelée.
Je fais des changements comme suit:
Usage usage = {get the Usage object from the datacontext};
usage.ResourceId = newValue1;
usage.UsageTypeId = newValue2;
usage.Percentage = newValue3;
Ce qui est vraiment ennuyeux est que si j'appelle la méthode à partir d'un dispositif d'essai fonctionne correctement et met à jour la base de données, mais lorsqu'il est appelé de nulle part ailleurs que le pas les colonnes de clé étrangère sont mises à jour.
James :-)
Readonly est définie sur false, et les autres propriétés sont mises à jour. Lorsque vous parcourez le code, les propriétés de ResourceID et TypeID sont définies et le code de concepteur en cours d'exécution. – m0gb0y74
Consultez ce lien: http://www.codeproject.com/Messages/2918828/LINQ-to-SQL-bug-when-updating-foreign-key-fields.aspx Espérons que cela vous aide. – Raja