У меня есть тестовое приложение EntityFramework
. Select
запрос работает хорошо. Я хочу, чтобы Insert
новую строку в моей базе данных. Я делаю это в следующем коде:Почему EntityFramework обновляет контекст, но не обновляет базу данных?
static void Main(string[] args)
{
using (Database1Entities context = new Database1Entities())
{
Console.WriteLine("Current data in Table:");
Console.WriteLine();
var selectQuery = from person in context.Person
select person;
foreach (var person in selectQuery)
{
Console.WriteLine("{0}. {1} - {2}", person.id, person.Name, person.Age);
}
Console.WriteLine();
Console.WriteLine("---------------------------------------");
Console.WriteLine("Try to add the new object to a table:");
Console.WriteLine();
Person newItem = new Person();
newItem.Name = "Tanya";
newItem.Age = 20;
context.Person.Add(newItem);
context.SaveChanges();
var selectQuery2 = from person in context.Person
select person;
foreach (var person in selectQuery2)
{
Console.WriteLine("{0}. {1} - {2}", person.id, person.Name, person.Age);
}
}
Console.ReadKey();
}
У меня есть этот выход:
Текущие данные в таблице:
- Влад - 20
- Игорь - 27
Попробуйте добавить новый объект в таблице:
- Влад - 20
- Игорь - 27
- Таня - 20
И эти данные в базе данных:
id name age
1 Vlad 20
2 Igor 27
Выходные данные показывают, что изменения происходят, но база данных не обновляется d, изменений нет!
Ваш результат, похоже, не согласен с вами. Вы пытались закрыть контекст и открыть новый, прежде чем делать свой запрос? Думаю, вы обнаружите, что Таня все еще там. –
Пробовал, но никакого эффекта. Таня сохраняется в contex, но не сохраняется в базе данных! – BJladu4
Это когда-нибудь работало для вас раньше? Является ли база данных той же проверкой, с которой связан ваш контекст? Вы смотрите в правый стол? Вы будете чувствовать себя глупо, когда узнаете, в чем проблема. –