简体   繁体   English

重新加载导航属性EF

[英]Reload navigation property EF

I use EF6 with DB-First. 我将EF6与DB-First一起使用。 My DB contains 2 tables: Authors and Books. 我的数据库包含2个表:Authors和Books。 After load object with EF I delete row in DataBase directly (in SQL Manegment studio for example or use ExecuteNonQuery()), how to reload navigation property? 使用EF加载对象后,我直接删除了数据库中的行(例如在SQL Manegment Studio中或使用ExecuteNonQuery()),如何重新加载导航属性? I get to see the same records Books in myObj after Load(). 在Load()之后,我可以在myObj中看到相同的记录Books。 If I insert directly into the database, the new records Books are visible after Load() on myObj. 如果我直接插入数据库,则在myObj上的Load()之后可以看到新的记录Books。

var cnt = new Entities();
var myObj = cnt.Authors.
        Where(x => x.Name = "Author Name").
        Include("Books").
        FirstOrDefault();
// Delete directly in database (ex: Delete From Books Where ID = ...)
// DeleteDirect();
cnt.Entry(myObj).Collection("Books").Load();

使用DataContext的Refresh方法刷新数据的本地副本:

DataContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues,DataContext.Orders);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM