使用实体框架模型插入数据

本文关键字:插入 数据 模型 框架 实体 | 更新日期: 2023-09-27 18:20:17

我试图使用实体框架模型在数据库中插入一些数据,但由于一些未知的原因,它什么也没做。

我是不是遗漏了什么?

using (var context = new DatabaseEntities())
{
    var t = new test
    {
        ID = Guid.NewGuid(),
        name = "blah",
    };
    context.AddTotest(t);
    context.SaveChanges();
}

使用实体框架模型插入数据

应该是:

context.TableName.Add(TableEntityInstance);

对于6之前的实体框架版本,它是:

context.TableName.AddObject(TableEntityInstance);

其中:

  1. TableName:数据库中表的名称
  2. TableEntityInstance:表实体类的一个实例

如果您的表是Orders,那么:

Order order = new Order();
context.Orders.Add(order);

例如:

 var id = Guid.NewGuid();
    
 // insert
 using (var db = new EfContext("name=EfSample"))
 {
    var customers = db.Set<Customer>();
    customers.Add( new Customer { CustomerId = id, Name = "John Doe" } );
  
    db.SaveChanges();
 }

这里有一个例子:

public void UpdatePlayerScreen(byte[] imageBytes, string installationKey)
{
  var player = (from p in this.ObjectContext.Players where p.InstallationKey == installationKey select p).FirstOrDefault();
  var current = (from d in this.ObjectContext.Screenshots where d.PlayerID == player.ID select d).FirstOrDefault();
  if (current != null)
  {
    current.Screen = imageBytes;
    current.Refreshed = DateTime.Now;
    this.ObjectContext.SaveChanges();
  }
  else
  {
    Screenshot screenshot = new Screenshot();
    screenshot.ID = Guid.NewGuid();
    screenshot.Interval = 1000;
    screenshot.IsTurnedOn = true;
    screenshot.PlayerID = player.ID;
    screenshot.Refreshed = DateTime.Now;
    screenshot.Screen = imageBytes;
    this.ObjectContext.Screenshots.Add(screenshot);
    this.ObjectContext.SaveChanges();
  }
}
var context = new DatabaseEntities();
var t = new test //Make sure you have a table called test in DB
{
    ID = Guid.NewGuid(),
    name = "blah",
};
context.test.Add(t);
context.SaveChanges();

应该这样做

[HttpPost]//在按钮点击事件上编写逻辑时使用

public ActionResult DemoInsert(EmployeeModel emp)
{
    Employee emptbl = new Employee();    // make object of table
    emptbl.EmpName = emp.EmpName;
    emptbl.EmpAddress = emp.EmpAddress;  // add if any field you want insert
    dbc.Employees.Add(emptbl);           // pass the table object 
    dbc.SaveChanges();
    return View();
}