Я пытаюсь вставить некоторые данные в свою базу данных, используя модель Entity Framework, но по неизвестным мне причинам ничего не делает.
Я что-то упустил?
using (var context = new DatabaseEntities())
{
var t = new test
{
ID = Guid.NewGuid(),
name = "blah",
};
context.AddTotest(t);
context.SaveChanges();
}
c#
.net
entity-framework
Роши
источник
источник
Ответы:
Должен быть:
Куда:
TableName
: имя таблицы в базе данных.TableEntityInstance
: экземпляр класса сущности таблицы.Если у вас стол
Orders
, то:Order order = new Order(); context.Orders.AddObject(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.AddObject(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(); }
источник
Я использую EF6 и нахожу что-то странное,
Предположим, у клиента есть конструктор с параметром,
если я использую
new Customer(id, "name")
, и делаюusing (var db = new EfContext("name=EfSample")) { db.Customers.Add( new Customer(id, "name") ); db.SaveChanges(); }
Он проходит без ошибок, но когда я смотрю в базу данных, я на самом деле обнаруживаю, что данные НЕ вставляются,
Но если я добавлю фигурные скобки, используйте
new Customer(id, "name"){}
и сделайтеusing (var db = new EfContext("name=EfSample")) { db.Customers.Add( new Customer(id, "name"){} ); db.SaveChanges(); }
данные будут фактически вставлены,
Кажется, что фигурные скобки имеют значение, я думаю, что только при добавлении фигурных скобок структура сущности распознает, что это настоящие конкретные данные.
источник