尝试使用 Entity Framework 将值保存到数据库时出现元数据错误

Getting metadata error while trying to save values to DB using Entity Framework

我对 entity framework 有点陌生。

我创建了一个示例应用程序以使用 entity framework 将值保存到数据库 table。

我在下面给出了我的代码片段。

[HttpPost]
        public ActionResult Employee(EmployeeModel model)
        {
            if (ModelState.IsValid)
            {
                // insert
                var _insert = new EmployeeModel
                {
                    FirstName = model.FirstName,
                    LastName = model.LastName,
                    Initial = model.Initial,
                    DOB = model.DOB,
                    DOJ = model.DOJ,
                    Role = model.Role,
                    City = model.City,
                    State = model.State,
                    Country = model.Country
                };
                db.Employee_Master.AddObject(_insert);
                db.SaveChanges();
                return View();
            }

我在 "db.Employee_Master.AddObject(_insert);" 行中收到以下编译错误。

"The best overloaded method match for 'System.Data.Objects.ObjectSet.AddObject(FinancialManagementSystem.Models.Employee_Master)' has some invalid arguments S:\SourceCode\FinancialManagementSystem\FinancialManagementSystem\Controllers\EmployeeController.cs"

我做错了什么?

使用 Add 而不是 AddObject。 EmployeeModel 是在 View 和 Controller 之间传输数据的模型。 您要插入的 table 是哪个? 例如,您有 table 名员工。

public DbSet<Blog> Employees { get; set; } 

db.Employees.Add(new Employee {FirstName = model.FirstName,....});

但是如果你还想使用AddObject:

db.Employee_Master.AddObject(new Employee {...}); //Employee is the name of the class represent for Employee_Master, maybe is Employee_Master of your problem.

A​​dd 和 AddObject 的区别如下:http://blog.cincura.net/232485-someentityset-addobject-vs-addtosomeentityset-methods/