2009-06-08 9 views
1

Ja, dieses Thema ist auf Hunderte von Posts im ganzen Netz abgedeckt, und ich habe immer noch nicht die gefunden, die nicht das Laden einer ganzen Entität (manchmal serialisiert) beinhaltet, nur um ein einzelnes Feld zu ändern. Einige hatten vorgeschlagen, dass das Ändern von "Update Check" für alle Eigenschaften der Entitäten dies lösen würde, aber bis jetzt bekomme ich ChangeConflictExceptions immer noch, unabhängig von meinem Ansatz. Gibt es eine Möglichkeit, L2S zu sagen, dass sie aufhören soll, mein Kindermädchen zu sein und mich updaten zu lassen?Aktualisieren eines einzelnen Feldes mit Linq zu SQL - Kann ich alle Nebenläufigkeitslogik einfach deaktivieren?

var context = new MyDataContext(); 
var person = new Person() {Id = 5}; 
person.LastName = "Johanssen"; 
context.People.Attach(person); 
context.SubmitChanges(); 

Vielen Dank für Ihre Einsicht!

James

Antwort

2

Ok, ich war nicht Visual Studio genau genug beobachten. Obwohl ich im Designer alle meine Felder auf UpdateCheck geändert hatte. Wenn ich die Datei MyModel.desinger.cs betrachtete, um die generierten Entitäten zu sehen, wurde dieses Attribut den meisten Feldern nicht hinzugefügt. Als ich das Attribut hinzugefügt habe, ging das Update durch und alles war gut.

Wenn Sie dieses Attribut zu vielen Feldern gleichzeitig hinzufügen müssen, wird hier ein VS Regulärer Ausdruck ersetzt, der es an alle Spalten in der Datei anhängt. Ich empfehle dringend, die Datei zuerst zu überprüfen (oder zu sichern), um sicherzustellen, dass Sie nicht zuerst Ihre ganze harte Arbeit verlieren. Und wenn Sie das Attribut bereits eingestellt haben, wird es verdoppelt (daher der zweite Ersatz unten).

Find and Replace (Regular Expressions on) 
\[Column{.*}\)\] 
[Column\1, UpdateCheck=UpdateCheck.Never)] 

Find and Replace (Regular Expressions off) 
UpdateCheck=UpdateCheck.Never, UpdateCheck=UpdateCheck.Never 
UpdateCheck=UpdateCheck.Never 
Verwandte Themen