Saya mencoba memasukkan beberapa data dalam database saya menggunakan model Entity Framework, tetapi untuk beberapa alasan yang tidak saya ketahui, itu tidak melakukan apa-apa.
Apakah saya melewatkan sesuatu di sini?
using (var context = new DatabaseEntities())
{
var t = new test
{
ID = Guid.NewGuid(),
name = "blah",
};
context.AddTotest(t);
context.SaveChanges();
}
c#
.net
entity-framework
Rocshy
sumber
sumber
Jawaban:
Harus:
Dimana:
TableName
: nama tabel di database.TableEntityInstance
: turunan dari kelas entitas tabel.Jika tabel Anda adalah
Orders
, maka:Order order = new Order(); context.Orders.AddObject(order);
Sebagai contoh:
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(); }
Berikut adalah contoh langsungnya:
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(); } }
sumber
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();
Harus melakukannya
sumber
[HttpPost] // digunakan ketika Anda menulis logika pada acara klik tombol
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(); }
sumber
Saya menggunakan EF6, dan saya menemukan sesuatu yang aneh,
Misalkan Pelanggan memiliki konstruktor dengan parameter,
jika saya menggunakan
new Customer(id, "name")
, dan melakukanusing (var db = new EfContext("name=EfSample")) { db.Customers.Add( new Customer(id, "name") ); db.SaveChanges(); }
Ini berjalan tanpa kesalahan, tetapi ketika saya melihat ke DataBase, saya menemukan fakta bahwa data TIDAK Disisipkan,
Tetapi jika saya menambahkan tanda kurung kurawal, gunakan
new Customer(id, "name"){}
dan lakukanusing (var db = new EfContext("name=EfSample")) { db.Customers.Add( new Customer(id, "name"){} ); db.SaveChanges(); }
data tersebut kemudian akan benar-benar disisipkan,
Sepertinya Curly Brackets membuat perbedaan, saya kira hanya ketika menambahkan Curly Brackets, kerangka kerja entitas akan mengenali ini adalah data konkret nyata.
sumber