Frage

Ich habe diesen Code:

    Message message = new Message();
    message.Id = 5;
    message.EntityKey = context.CreateEntityKey("MessageSet", entity);
    message.Votes++;
    context.Attach(entity);
    context.ObjectStateManager.GetObjectStateEntry(entity.EntityKey).SetModifiedProperty("Votes");
    Save();

Aber natürlich initialisieren Abstimmungen mit 0.

Wie kann ein erzeugt so etwas wie

Update Messages set Votes=Votes+1 where Id = 5

?? Thx

War es hilfreich?

Lösung

Ich glaube nicht, dass Sie diese direkt erreichen können, aber Sie könnten ein paar Import Funktionen und verwenden Sie einen SP verwenden, um zu tun, was Sie brauchen.

Andere Tipps

Wie LINQ to Entities ist ein OR-Mapper, die allgemeine Idee ist, dass man es erste Abfrage für die Einheit oder Einheiten Sie aktualisieren müssen, aktualisieren Sie sie mit Objekten in Code, und geben Sie einen Update-Befehl auf dem Object die Änderungen bestehen bleiben zu diesen Unternehmen steht. Es ist eine wichtige Sache, aber oft schwer, ein ORM für die Verwendung von wie Entity Framework, NHibernate, LINQ to SQL früh, aber der Grund zu erfassen, usw. ist die Notwendigkeit zu beseitigen SQL zu schreiben, und verwendet, um Objekte statt.

Im Folgenden soll das sein, was Sie brauchen:

Message msg = context.Messages.First(m => m.Id == 5);
msg.Votes += 1;

context.SaveChanges();

Der Aufruf von Savechanges wird SQL CUD-Anweisungen für Sie generieren, eine für jedes Update, einfügen und / oder löschen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top