Лучший перегруженный метод имеет несколько недопустимых аргументов, используя Asp.net MVc - PullRequest
0 голосов
/ 23 октября 2019

я создаю простую изобретательную систему в Asp.net Mvc, я получил ошибку как Лучший перегруженный метод соответствия для 'System.Data.Entity.Dbset.Add (WebApplication27.Models.sale)' имеет недопустимыйаргументы

я получил ошибку в этой строке проекта db.sales.Add (sale); я пытаюсь решить эту проблему со вчерашнего дня, но не смог это сделать.

файл sales.class **

public partial class sale
    {
        public int id { get; set; }
        public Nullable<int> subtotal { get; set; }
        public Nullable<int> pay { get; set; }
        public Nullable<int> balance { 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" } };
    }

}

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; }

    }

1 Ответ

0 голосов
/ 23 октября 2019

Не можете оставлять комментарии, поэтому придется оставить это как ответ:

Ваш столбец идентификатора не выглядит как автоматически увеличивающийся, и вы не передали идентификатор для его использования. ,Вам нужно либо использовать:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]

В столбце идентификатора, чтобы он автоматически генерировался, либо получить текущий максимальный идентификатор в таблице и установить его равным +1:

id = db.sales.Max(x=>x.id)+1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...