我必须使用哪一个,MyDbContext.Blogs.Add(ablog)或MyDbContext.Add(ablog)?

时间:2017-10-01 07:10:58

标签: c# entity-framework entity-framework-core dbcontext ef-core-2.0

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

当我向Blog添加新ablog个实例Blogs时,我必须使用哪个实例?

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

Find怎么样?

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

使用一个比另一个好吗?

1 个答案:

答案 0 :(得分:1)

通过DbContext直接添加数据对于实体框架核心中的DbContext是新的,并且在DbContext可用的先前版本的实体框架中没有等价物(即EF 4.1以后) )。

但没有区别because

  

当您使用Add的任一版本时,context开始跟踪   传入方法并应用EntityState的实体   添加到它的价值。上下文也适用相同的EntityState   值已添加到图表中尚未包含的所有其他对象   由context跟踪。

还有AddAdd<TEntity>(TEntity entity))的通用版本,但是Visual Studio也建议您省略type参数,因为编译器会从传入方法的参数中推断出类型。