考虑我有一个上下文MyDbContext
继承了EFCore 2.0的DbContext
。
Blogs
是DbSet<Blog>
,Blog
是实体模型。
当我向Blog
添加新ablog
个实例Blogs
时,我必须使用哪个实例?
MyDbContext.Add(ablog);
或MyDbContext.Blogs.Add(ablog);
?
Find
怎么样?
MyDbContext.Find<Blog>(1);
或MyDbContext.Blogs.Find(1);
?
使用一个比另一个好吗?
答案 0 :(得分:1)
通过DbContext
直接添加数据对于实体框架核心中的DbContext
是新的,并且在DbContext
可用的先前版本的实体框架中没有等价物(即EF 4.1以后) )。
但没有区别because:
当您使用
Add
的任一版本时,context
开始跟踪 传入方法并应用EntityState
的实体 添加到它的价值。上下文也适用相同的EntityState
值已添加到图表中尚未包含的所有其他对象 由context
跟踪。
还有Add
(Add<TEntity>(TEntity entity)
)的通用版本,但是Visual Studio也建议您省略type参数,因为编译器会从传入方法的参数中推断出类型。