Insert data using Entity Framework model

后端 未结 4 834
感情败类
感情败类 2020-11-27 03:07

I\'m trying to insert some data in my database using Entity Framework model, but for some unknown reasons to me, it does nothing.

Am I missing something here?

<
相关标签:
4条回答
  • 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();
    

    Should do it

    0 讨论(0)
  • 2020-11-27 03:47

    [HttpPost] // it use when you write logic on button click event

    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();
    }
    
    0 讨论(0)
  • 2020-11-27 03:50

    It should be:

    context.TableName.AddObject(TableEntityInstance);
    

    Where:

    1. TableName: the name of the table in the database.
    2. TableEntityInstance: an instance of the table entity class.

    If your table is Orders, then:

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

    For example:

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

    Here is a live example:

    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.AddObject(screenshot);
        this.ObjectContext.SaveChanges();
      }
    }
    
    0 讨论(0)
  • 2020-11-27 04:01

    I'm using EF6, and I find something strange,

    Suppose Customer has constructor with parameter ,

    if I use new Customer(id, "name"), and do

     using (var db = new EfContext("name=EfSample"))
     {
        db.Customers.Add( new Customer(id, "name") );
        db.SaveChanges();
     }
    

    It run through without error, but when I look into the DataBase, I find in fact that the data Is NOT be Inserted,

    But if I add the curly brackets, use new Customer(id, "name"){} and do

     using (var db = new EfContext("name=EfSample"))
     {
        db.Customers.Add( new Customer(id, "name"){} );
        db.SaveChanges();
     }
    

    the data will then actually BE Inserted,

    seems the Curly Brackets make the difference, I guess that only when add Curly Brackets, entity framework will recognize this is a real concrete data.

    0 讨论(0)
提交回复
热议问题