2 Stimmen

Datenbank mit LINQ to Entities aktualisieren

Ich habe einige Forschung auf, wie man einen vorhandenen Datensatz mit LINQ zu aktualisieren, aber ich bin nicht mit kein Glück. Dies ist die Methode, die ich erstellt habe - Intellisense mag nicht die db.SubmitChanges() .

public void updateRestaurant(int RestID, int HoursID, string Web, string Desc)
{
    RestaurantsEntities db = new RestaurantsEntities();
    RESTAURANT restDetails = (from RESTAURANT in db.RESTAURANTs
                                    where RESTAURANT.REST_ID == RestID
                                    select RESTAURANT).Single();
    restDetails.HOURS_ID = HoursID;
    restDetails.REST_WEBSITE = Web;
    restDetails.REST_DESC = Desc;

    db.SubmitChanges();
}

4voto

Versuchen Sie es mit db.SaveChanges();

    public void updateRestaurant(int RestID, int HoursID, string Web, string Desc)
    {
        RestaurantsEntities db = new RestaurantsEntities();
        RESTAURANT restDetails = (from RESTAURANT in db.RESTAURANTs
                                        where RESTAURANT.REST_ID == RestID
                                        select RESTAURANT).Single();
        restDetails.HOURS_ID = HoursID;
        restDetails.REST_WEBSITE = Web;
        restDetails.REST_DESC = Desc;
        db.SaveChanges();
    }

0voto

MrJD Punkte 1879

Sie erstellen eine Instanz eines Objekts in Ihrem Linkgraph.

Dies ist falsch. Sie müssen eine Instanz Ihres Objektkontextes erstellen, die mit dem Dateinamen Ihres Linq-Graphen beginnt und mit DataContext endet. Wenn Ihre Verknüpfungsdatei z. B. myDb heißt, lautet Ihr Kontextname myDbDataContext.

RestaurantsEntities db = new RestaurantsEntities();
RESTAURANT restDetails = db.RESTAURANTs.single(c=>c.REST_ID == RestID);
restDetails.HOURS_ID = HoursID;
restDetails.REST_WEBSITE = Web;
restDetails.REST_DESC = Desc;
db.SubmitChanges();

Dies setzt voraus, dass ein Objekt in Ihrem Kontext RESTAURANT heißt.

Sie müssen den Kontext verwenden, damit der Kontext das, was Sie einfügen, aktualisieren und löschen wollen, verwalten und gleichzeitig Beziehungen pflegen kann. Sie können keine Instanzen von Objekten erstellen und diese dann auf Ihren Kontext anwenden. Sie müssen über den Kontext erstellt werden.

Als Antwort auf den Kommentar und die Aktualisierung:
Ich kann einfach nicht klar denken. Ich habe meinen Code aktualisiert, aber es wird nicht helfen. Ich bin ziemlich sicher, dass Sie alles richtig machen

Sehen Sie sich diese Frage an und dieser Beitrag

UPDATE
Ich glaube, Ihre Anfrage bereitet Ihnen Schwierigkeiten. Es ist von Ihrem Kontext getrennt. Versuchen Sie den linq-Code, den ich oben zur Verfügung gestellt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X