Asp.net mvc 最佳重载方法使用Asp.net MVc时有一些无效参数
我正在Asp.net Mvc中创建一个简单的Inventy系统,错误如下 与“System.Data.Entity.Dbset.Add(WebApplication27.Models.sale)”匹配的最佳重载方法有一些无效参数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
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是的,因此请传递适当的一个,通过在名称空间前面加前缀。我不知道如何完成上面附加的任务