2016-03-28 2 views
-1

Also das ist mein Code für in den Warenkorb. Jetzt möchte ich die Sitzungsobjekte in der Datenbank speichern. Kann mir jemand erklären, wie ich damit verfahren soll?So speichern Sie Sitzungswerte des Einkaufswagens in der Datenbank mit asp.net + MVC

public ActionResult Cart(int id) 
    { 
     if (Session["cart"] == null) 
     { 
      var cart = new List<Item>();    
      cart.Add(new Item(_productService.GetProductById(id), 1)); 
      Session["cart"] = cart; 
     } 
     else 
     { 
      var cart = (List<Item>)Session["cart"]; 
      int index = isExisting(id); 
      if (index == -1) 
      { 
       cart.Add(new Item(_productService.GetProductById(id), 1)); 
      } 
      else 
      { 
       cart[index].Quantity++; 
      } 
      Session["cart"] = cart; 
     } 
     var userModel = new UserViewModel(true, null, null); 
     return View(userModel); 
    } 

Antwort

0

Es gibt mehrere Methoden, um Daten über ASP.NET in einer Datenbank zu speichern.

Ich empfehle Ihnen, schauen Sie in ein Objekt-Relational Mapping-Tool:

  1. NHibernate (mit FluentNHibernate)
  2. EntityFramework

Es gibt eine Vielzahl von Dokumentationsressourcen für jedes dieser Werkzeuge .

Sie können auch auf ADO.NET zurückgreifen, aber dies wird nicht empfohlen, es sei denn, Sie müssen es unbedingt verwenden.

0

Ich gehe mit diesem genauen Szenario. Eine Möglichkeit besteht darin, Ihren Einkaufswagen als XML zu serialisieren und das XML in einer Datenbankspalte zu speichern. Dieser Ansatz ist nützlich, wenn Sie nicht erwarten, dass Sie die Details des Objekts abfragen müssen - Sie möchten es nur speichern und wiederherstellen, was Sie mit Session machen. Der Nachteil ist, dass Sie einige Abwärtskompatibilität verlieren könnten, wenn Sie die Klasse oder die Klassen ändern, aus denen ein Einkaufswagen besteht.

+0

Vielen Dank für Ihren Einblick, wie in der Warenkorb-Sitzung wird in dieser Codezeile gespeichert "var cart = (Liste ) Session [" Warenkorb "];". Aber kann ich diesen "var cart" verwenden, um ihn tatsächlich in der Datenbank zu speichern. – Jay

Verwandte Themen