插入记录实体框架

时间:2017-03-23 18:41:05

标签: c# entity-framework-6

所以我试图使用实体框架在数据库中插入记录,我尝试了这个简单的代码

TestEntities DB = new TestEntities();
List<Article> Articles = BD.Articles.ToList();
Articles.Add(new Article() { Id = 0, Category = "Category1",  Title = "Title1"});
Articles.Add(new Article() { Id = 0, Category = "Category2", Title = "Title2" });
DB.SaveChanges();

记录已添加到文章列表但未添加到数据库中,有人可以向我解释这是如何工作的。

2 个答案:

答案 0 :(得分:2)

Articles只是DbSet的内存副本。如果您希望能够将这些项目持久保存到数据库,则应将这些项目添加到DbSet

var art = new Article() { Id = 0, Category = "Category1",  Title = "Title1"};
Articles.Add(art);
BD.Articles.Add(art);

List<Article>未与DbSetDbContext“或”以任何方式与数据库“连接”。

答案 1 :(得分:0)

using(TestEntities DB = new TestEntities())
{
    BD.Articles.Add(new Article() { Id = 0, Category = "Category1",  Title = "Title1"});
    BD.Articles.Add(new Article() { Id = 0, Category = "Category2", Title = "Title2" });
    DB.SaveChanges();
}
  1. 将新文章添加到DbSet,而不是检索到的List,它只是一个内存表示。
  2. 始终在using语句中包装实现IDisposable的类型。在这种情况下,它确保在代码存在时关闭数据库连接。