MusicStore " - System.Daten.Objekte.ObjectSet<...>' enthält keine definition für 'Hinzufügen', und keine Erweiterung Methode 'Add' die Annahme einer ersten Auseinandersetzung

Habe ich nach dem MusicStore-tutorial bin ich schon auf die Teil 8 der tutorial. Ich bekam diese Fehlermeldung, wenn ich versuchte, fügen Sie die Warenkorb-Klasse.. ich habe versucht zu google für eine mögliche Lösung, aber nicht sauber T_T .. aufgrund meiner Forschung bin ich immer diese Fehlermeldung, denn ich bin mit edmx die Datenbank zuerst anstelle der erste code auf der Anleitung.

Hatte ich diese codes Hinzugefügt und ein Fehler auf, Add() und Remove()

namespace Project.Models 
{ 
    public partial class ShoppingCart 
    {  
        ProjectEntities db = new ProjectEntities();  

        string ShoppingCartId { get; set; }

        public const string CartSessionKey = "cart_ID";
        public static ShoppingCart GetCart(HttpContextBase context)
        {
            var cart = new ShoppingCart();
            cart.ShoppingCartId = cart.GetCartId(context);
            return cart;
        }
        //Helper method to simplify shopping cart calls
        public static ShoppingCart GetCart(Controller controller)
        {
            return GetCart(controller.HttpContext);
        }
        public void AddToCart(Product product)
        {
            //Get the matching cart and album instances
            var cartItem = db.Carts.SingleOrDefault(c => c.cart_ID == ShoppingCartId && c.product_ID == product.product_ID);

            if (cartItem == null)
            {
                //Create a new cart item if no cart item exists
                cartItem = new Cart
                {
                    product_ID = product.product_ID,
                    cart_ID = ShoppingCartId,
                    Count = 1,
                    DateCreated = DateTime.Now
                };
                db.Carts.Add(cartItem);
            }
            else
            {
                //If the item does exist in the cart,  then add one to the quantity
                cartItem.Count++;
            }
            //Save changes
            db.SaveChanges();
        }
        public int RemoveFromCart(int id)
        {
            //Get the cart
            var cartItem = db.Carts.Single(cart => cart.cart_ID == ShoppingCartId && cart.record_ID == id);

            int itemCount = 0;

            if (cartItem != null)
            {
                if (cartItem.Count > 1)
                {
                    cartItem.Count--;
                    itemCount = cartItem.Count;
                }
                else
                {
                    db.Carts.Remove(cartItem);
                }
                //Save changes
                db.SaveChanges();
            }
            return itemCount;
        }
        public void EmptyCart()
        {
            var cartItems = db.Carts.Where(cart => cart.cart_ID == ShoppingCartId);

            foreach (var cartItem in cartItems)
            {
                db.Carts.Remove(cartItem);
            }
            //Save changes
            db.SaveChanges();
        }
        public List<Cart> GetCartItems()
        {
            return db.Carts.Where(cart => cart.cart_ID == ShoppingCartId).ToList();
        }
        public int GetCount()
        {
            //Get the count of each item in the cart and sum them up
            int? count = (from cartItems in db.Carts
                          where cartItems.cart_ID == ShoppingCartId
                          select (int?)cartItems.Count).Sum();
            //Return 0 if all entries are null
            return count ?? 0;
        }
        public decimal GetTotal()
        {
            //Multiply album price by count of that album to get 
            //the current price for each of those albums in the cart
            //sum all album price totals to get the cart total
            decimal? total = (from cartItems in db.Carts
                              where cartItems.cart_ID == ShoppingCartId
                              select (int?)cartItems.Count * cartItems.Product.Price).Sum();

            return total ?? decimal.Zero;
        }
        public int CreateOrder(Order order)
        {
            decimal orderTotal = 0;

            var cartItems = GetCartItems();
            //Iterate over the items in the cart, adding the order details for each
            foreach (var item in cartItems)
            {
                var orderDetail = new OrderDetail
                {
                    product_ID = item.product_ID,
                    order_ID = order.order_ID,
                    UnitPrice = item.Product.Price,
                    Quantity = item.Count
                };
                //Set the order total of the shopping cart
                orderTotal += (item.Count * item.Product.Price);

                db.OrderDetails.Add(orderDetail);

            }
            //Set the order's total to the orderTotal count
            order.Total = orderTotal;

            //Save the order
            db.SaveChanges();
            //Empty the shopping cart
            EmptyCart();
            //Return the OrderId as the confirmation number
            return order.order_ID;
        }
        //We're using HttpContextBase to allow access to cookies.
        public string GetCartId(HttpContextBase context)
        {
            if (context.Session[CartSessionKey] == null)
            {
                if (!string.IsNullOrWhiteSpace(context.User.Identity.Name))
                {
                    context.Session[CartSessionKey] = context.User.Identity.Name;
                }
                else
                {
                    //Generate a new random GUID using System.Guid class
                    Guid tempCartId = Guid.NewGuid();
                    //Send tempCartId back to client as a cookie
                    context.Session[CartSessionKey] = tempCartId.ToString();
                }
            }
            return context.Session[CartSessionKey].ToString();
        }
        //When a user has logged in, migrate their shopping cart to
        //be associated with their username
        public void MigrateCart(string userName)
        {
            var shoppingCart = db.Carts.Where(c => c.cart_ID == ShoppingCartId);
            foreach (Cart item in shoppingCart)
            {
                item.cart_ID = userName;
            }
            db.SaveChanges();
        }
    }
}  

Ich bin ein starter in MVC und hoffentlich könnte jemand mir helfen, diese zu lösen.

  • Bitte setzen Sie den code der ProjectEntities Klasse.
  • Tut mir Leid, ich mache es in erste Datenbank, so dass ich nur noch die .emdx-Datei auf meine Model-Mappe, die zeigt die Beziehung der Tabellen. Unter meine .edmx-Datei-Projekt.Designer.cs
InformationsquelleAutor bot | 2012-12-19
Schreibe einen Kommentar