购物车功能提供“无效的列名称”

时间:2012-03-02 14:14:11

标签: c# asp.net asp.net-mvc linq-to-sql

我正在尝试学习如何在MVC中使用购物车功能,我正在尝试将asp.net网站上的教程中的MusicStore代码改编为我自己的目的。

所以我使用了它并试图根据我的需要修改它。我已经改变了一点以使用我的数据库布局,我已经到了我试图在我的购物车中添加一篇文章的地方,而这就是我已经被困住了一段时间的地方。尝试将产品添加到购物车时会崩溃。

Invalid column name 'Articles_ArtikelNr'.

Description: An unhandled exception occurred during the execution of the current web     request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: Invalid column name 'Articles_ArtikelNr'.

Source Error: 


Line 28:         {
Line 29:             // Get the matching cart and album instances
Line 30:             var cartItem = storeDB.Cart.SingleOrDefault(
Line 31:                 c => c.CartId == ShoppingCartId 
Line 32:                 && c.ArtId == id);

该模型如下所示:

public class Cart
{
    [Key]
    public int      RecordId    { get; set; }
    public string   CartId      { get; set; }
    public string   ArtId { get; set; }
    public int      Count       { get; set; }
    public decimal  Price    { get; set; }
    public DateTime DateCreated { get; set; }
    public virtual Art Articles { get; set; }
}

控制器:

public ActionResult AddToCart(string id)
    {
        // Retrieve the album from the database
        //var addedProduct = storeDB.Art
        //    .Single(Art => Art.ArtikelNr == id);

        // Add it to the shopping cart
        var cart = ShoppingCart.GetCart(this.HttpContext);

        cart.AddToCart(id);

        // Go back to the main store page for more shopping
        return RedirectToAction("Index", "Home", cart);
    }

你可以看到我改变的一些事情,我认为目前没有任何理由可以移动更多ID(文章nr),保持简单......

这里也是崩溃发生的函数本身:

public void AddToCart(string id)
    {
        // Get the matching cart and album instances
        var cartItem = storeDB.Cart.SingleOrDefault(
            c => c.CartId == ShoppingCartId 
            && c.ArtId == id);

        if (cartItem == null)
        {
            // Create a new cart item if no cart item exists
            cartItem = new Cart
            {
                ArtId = id,
                CartId = ShoppingCartId,
                Count = 1,
                Price = 1,
                DateCreated = DateTime.Now
            };
            storeDB.Cart.Add(cartItem);
        }
        else
        {
            // If the item does exist in the cart, 
            // then add one to the quantity
            cartItem.Count++;
        }
        // Save changes
        storeDB.SaveChanges();
    }

像往常一样,我确信我忽略了一些非常容易的事情。我正在学习,但我怀疑这篇文章_ArtikelNr与

有关
public virtual Art Articles { get; set; }

参与模型和articles_ArtikelNr,但我不确定这里有什么问题。关于如何键入cartItem查询的东西todo我猜?

0 个答案:

没有答案