我有一个EntityFramework
测试应用。 Select
查询效果很好。我想Insert
我的数据库的新行。我在下面的代码中这样做:
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();
}
我有这个输出:
表中的当前数据:
- Vlad - 20
- Igor - 27
醇>
尝试将新对象添加到表中:
- Vlad - 20
- Igor - 27
- Tanya - 20
醇>
这个数据在数据库中:
id name age
1 Vlad 20
2 Igor 27
输出显示发生了更改,但数据库未更新,没有更改!
答案 0 :(得分:2)
尝试这样做
Context.Set<Person>().Add(newItem);
Context.SaveChanges();
编辑1
如果上述解决方案无效,请尝试更改此实体状态
Context.Entry<Person>(newItem).State = EntityState.Added;
Context.SaveChanges();
答案 1 :(得分:0)