假设我有一个上下文MyDbContext继承了DbContext of EFCore 2.0。Blogs是一个DbSet<Blog>,Blog是一个实体模型。
当我将一个新的Blog实例ablog添加到Blogs中时,我必须使用哪个实例?
MyDbContext.Add(ablog);或MyDbContext.Blogs.Add(ablog);
Find怎么样?
MyDbContext.Find<Blog>(1);或MyDbContext.Blogs.Find(1);
用一个比另一个好吗?
发布于 2017-10-01 07:21:45
通过DbContext直接添加数据是实体框架核心中的DbContext中的新内容,在以前版本的实体框架中,DbContext是可用的(即EF4.1以后)。
但是因为没有区别
当您使用
Add的任一版本时,context开始跟踪传递给该方法的实体,并应用添加到该方法的EntityState值。上下文还将添加的相同EntityState值应用于图形中尚未被context跟踪的所有其他对象。
此外,还有一个通用版本的Add (Add(TEntity entity)),但正如Visual所建议的,您可以省略类型参数,因为编译器将从传递给方法的参数中推断类型。
https://stackoverflow.com/questions/46510059
复制相似问题