1

考虑我有 EFCore 2.0 的上下文MyDbContext继承DbContextBlogs是一个DbSet<Blog>并且Blog是一个实体模型。

当我向 中添加一个新Blog实例时,ablogBlogs必须使用哪一个?

MyDbContext.Add(ablog);还是MyDbContext.Blogs.Add(ablog);

怎么样Find

MyDbContext.Find<Blog>(1);还是MyDbContext.Blogs.Find(1);

使用一个比另一个有什么好处吗?

4

1 回答 1

1

通过 Entity Framework Core 直接添加数据DbContext 是 Entity Framework Core 的新功能,并且在可用的 Entity Framework 的先前版本(即 EF 4.1 及更高版本)DbContext中没有等效项。DbContext

但是没有区别,因为

当您使用任一版本时Addcontext开始跟踪传递给方法的实体并对其应用已EntityState 添加的值。上下文还将相同EntityState 的已添加值应用于图中尚未由context.

还有一个Add( Add<TEntity>(TEntity entity)) 的通用版本,但正如 Visual Studio 所建议的,您可以省略类型参数,因为编译器将从传入方法的参数推断类型。

于 2017-10-01T07:21:45.657 回答