2009-09-22 6 views
0

Si j'apporte des modifications à un objet linq existant en affectant un "nouvel" objet du même type (avec des valeurs différentes), SubmitChanges n'apporte pas les modifications dans la base de données. pourquoi pas?Linq SubmittingChanges après l'affectation d'un nouvel objet

existing= new Data.Item{a=1, b=2...}; 

vs

existing.a= 1; 
    existing.b= 2; 

Répondre

0

Parce que vous ne changez pas l'objet, vous assignez un nouvel objet à la variable.

Vous devez affecter des champs un par un, (ou InsertOnSubmit ... mais cela créera un nouvel objet dans la base de données et cela ne vous semblera pas être ce que vous voulez faire). Cette approche fonctionnera si vous attribuez l'objet nouvellement créé à un champ d'un objet que LINQ to SQL connaît, mais encore une fois, cela créerait un nouvel objet plutôt que de changer celui qui était précédemment pointé vers (ce qui pourrait entraîner un tas de rangées de déchets dans votre base de données si vous ne vous en débarrassez jamais).

Questions connexes