Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 最佳重载方法使用Asp.net MVc时有一些无效参数_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 最佳重载方法使用Asp.net MVc时有一些无效参数

Asp.net mvc 最佳重载方法使用Asp.net MVc时有一些无效参数,asp.net-mvc,Asp.net Mvc,我正在Asp.net Mvc中创建一个简单的Inventy系统,错误如下 与“System.Data.Entity.Dbset.Add(WebApplication27.Models.sale)”匹配的最佳重载方法有一些无效参数 public class tableView { public string barcode_id { get; set; } public string pname { get; set; } public

我正在Asp.net Mvc中创建一个简单的Inventy系统,错误如下 与“System.Data.Entity.Dbset.Add(WebApplication27.Models.sale)”匹配的最佳重载方法有一些无效参数

public class tableView
    {
        public string barcode_id { get; set; }

        public string pname { get; set; }

        public int pro_price { get; set; }


        public int qty { get; set; }


        public int total_cost { get; set; }
    }


    public class ajaxModel
    {
        public List<tableView> data { get; set; }


        public int total { get; set; }

        public int pay { get; set; }

        public int balance { get; set; }




        public string orderid { get; set; }

    }
我得到了项目这一行的erordb.sales.Add(sale)我从昨天开始就想解决这个问题,但没能解决

sales.class文件 **

公共部分类销售
{
公共int id{get;set;}
公共可空小计{get;set;}
公共可空支付{get;set;}
公共可空余额{get;set;}
}
}
**

销售主管

[HttpPost]
public ActionResult SaveNew(string data)
{
    ajaxModel model = JsonConvert.DeserializeObject<ajaxModel>(data);
    bool status = false;
    try
    {
        using (aspposEntities1 db = new aspposEntities1())
        {
            //insert into Sales table
            var sale = new sale
            {


                subtotal = model.total,
                pay = model.pay,
                balance = model.balance

            };

          db.sales.Add(sale);



            **db.SaveChanges();**  // Error this line


            model.data.ForEach( m =>
            {
                //get the product and deduct the subtotal
                int db_product = db.products.First(e => e.id== m.barcode_id);
                db_product.qty = db_product.qty - m.qty;

                db.sales_product.Add(new sales_product
                {
               //     sales_id = sale.id,
                    barcode_id = m.barcode_id,
                    price = m.pro_price,
                    qty = m.qty,
                    total = m.total_cost
                });
            });
            db.SaveChanges();

        //    model.orderid = sale.id;
            status = true;
        }
        TempData["Data"] = model;
        return new JsonResult { Data = new { status, message = "Entry saved successfully" } };
        //return RedirectToAction("Print", model);
    }
    catch (Exception e)
    {
        return new JsonResult { Data = new { status, message = "There was an error saving the Entry" } };
    }

}
[HttpPost]
公共操作结果SaveNew(字符串数据)
{
ajaxModel model=JsonConvert.DeserializeObject(数据);
布尔状态=假;
尝试
{
使用(aspposEntities1 db=new aspposEntities1())
{
//插入到销售表中
var销售=新销售
{
小计=model.total,
pay=model.pay,
balance=model.balance
};
db.sales.Add(销售);
**db.SaveChanges();**//此行出错
model.data.ForEach(m=>
{
//获取产品并扣除小计
int db_product=db.products.First(e=>e.id==m.barcode_id);
db_product.qty=db_product.qty-m.qty;
db.sales\u product.Add(新的sales\u产品
{
//sales\u id=sale.id,
条形码\u id=m.barcode\u id,
价格=m.pro_价格,
数量=m.qty,
总成本=总成本
});
});
db.SaveChanges();
//model.orderid=sale.id;
状态=真;
}
TempData[“数据”]=模型;
返回新的JsonResult{Data=new{status,message=“Entry saved successfully”};
//返回重定向操作(“打印”,型号);
}
捕获(例外e)
{
return new JsonResult{Data=new{status,message=“保存条目时出错”};
}
}
tableView.cs

public class tableView
    {
        public string barcode_id { get; set; }

        public string pname { get; set; }

        public int pro_price { get; set; }


        public int qty { get; set; }


        public int total_cost { get; set; }
    }


    public class ajaxModel
    {
        public List<tableView> data { get; set; }


        public int total { get; set; }

        public int pay { get; set; }

        public int balance { get; set; }




        public string orderid { get; set; }

    }
公共类tableView
{
公共字符串条形码\u id{get;set;}
公共字符串pname{get;set;}
公共整数价格{get;set;}
公共整数数量{get;set;}
公共整数总成本{get;set;}
}
公共类ajaxModel
{
公共列表数据{get;set;}
公共整数总计{get;set;}
公共整数支付{get;set;}
公共整数平衡{get;set;}
公共字符串orderid{get;set;}
}

无法留下评论,因此必须将此作为答案:

您的ID列看起来不像是自动递增的,而且您还没有为它传递要使用的ID。您需要使用:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
在ID列上自动生成,或获取表中当前最高的ID并将其设置为+1:

id = db.sales.Max(x=>x.id)+1

这是一个运行时异常,OP有一个编译器错误。[DatabaseGenerated(DatabaseGenerateOption.Identity)]这其中必须通过sirI刚才无法获得此的演示并运行以测试它,但它与我之前遇到的一个类似的错误,即我没有将正确的对象传递到“.Add()”,如果我的回答是错误的,我会将其删除作为一个次要考虑,您确定您的表迁移是最新的吗?您发布的“sales”类与定义dbContext时使用的类相同吗?您可能有两个
sale
类。是的,先生。sales and sales Product是的,因此请传递适当的一个,通过在名称空间前面加前缀。我不知道如何完成上面附加的任务