1

考慮我有一個上下文MyDbContext繼承EFCore 2.0的DbContextBlogsDbSet<Blog>Blog是實體模型。我必須使用哪一個,MyDbContext.Blogs.Add(ablog)或MyDbContext.Add(ablog)?

當我添加一個新的Blog實例,ablogBlogs,我必須使用哪一個?

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

Find怎麼樣?

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

使用一個比另一個有什麼好處嗎?

回答

1

經由DbContext直接添加數據是新的,以在實體框架核心的DbContext並在先前版本實體框架的不等同其中DbContext是可用的(即EF 4.1以上)。

但沒有差別because

當您使用的Addcontext任一版本開始跟蹤這是在傳遞給方法和添加的EntityState 值適用於它的 實體。上下文同樣適用EntityState 值已添加到圖中的所有其他對象,但已被context跟蹤。

也有是AddAdd<TEntity>(TEntity entity))的通用版本,但作爲Visual Studio中也建議你可以省略類型參數,因爲編譯器會推斷到方法傳遞的參數類型。

相關問題