为什么不能从EntityLayer.SomeClass转换为DataLayer.SomeTable?

时间:2019-01-17 20:25:01

标签: c# sql-server linq

我想在数据库中插入一行,并且发生这样的错误:“参数1:无法从'EntityLayer.PriceList'转换为'DataLayer.tbl_PriceList'”。

我正在编写一个应用程序,其功能是在数据库表中添加一些行,所以我尝试了docs.microsoft.com中的一种方法。

在PriceLists.cs

namespace EntityLayer
{
    public class PriceList
    {
        public int id { get; set; }
        public string entry { get; set; }
        public double price { get; set; }
    }
}

在UserService.cs

using EntityLayer;
using DataLayer;

namespace BusinessLayer
{  
  public void insertNewTicket()
  {
      using (AquaparkDBDataContext db = new AquaparkDBDataContext())
      {
          PriceList pr = new PriceList
          {
              entry = "pobrane",
              price = 0
          };

          db.tbl_PriceLists.InsertOnSubmit(pr);                
          db.SubmitChanges();
      }
   }
}

我希望数据库表“ tbl_PriceLists”能够更新,但我只会得到错误。

1 个答案:

答案 0 :(得分:1)

您不能插入PriceList代替tbl_PriceLists。您的数据上下文不知道PriceList是什么。您必须将其映射。我假设您在tbl_PriceList上具有entryprice属性。

using (AquaparkDBDataContext db = new AquaparkDBDataContext())
  {
      PriceList pr = new PriceList
      {
          entry = "pobrane",
          price = 0
      };

      db.tbl_PriceLists.InsertOnSubmit(new tbl_PriceLists{
             entry = pr.entry,
             price = pr.price
      });                
      db.SubmitChanges();
  }