asp.net-mvc-3 – 如何在Entity Framework中更新实体的导航属性
发布时间:2020-05-28 13:08:02 所属栏目:asp.Net 来源:互联网
导读:在带有Entity Framework的ASP .NET MVC 3中,我有一个域对象,它具有引用其他对象的导航属性,如下所示: public class Person{ public String Name {get;set;} public Guid CompanyID{get;set;} [ForeignKey(CompanyID)] public vi
|
在带有Entity Framework的ASP .NET MVC 3中,我有一个域对象,它具有引用其他对象的导航属性,如下所示: public class Person
{
public String Name {get;set;}
public Guid CompanyID{get;set;}
[ForeignKey(CompanyID)]
public virtual CompanyType Company{ get; set; }
}
当我创建Person的实例并尝试将其添加到数据库时,DBContext会保留此实体“Person”的缓存并将其发送到数据库.因此,稍后在同一上下文实例的生命周期中,当我尝试访问此实体时,Company字段始终为null,因为导航属性永远不会更新. 有没有办法用数据库中存在的内容更新导航属性? 延迟加载已打开. 解决方法如果启用延迟加载并且您想要使用延迟加载加载导航属性,则必须创建新Person的代理,而不是使用new实例化它,如下所示:using (var context = new MyDbContext())
{
var person = context.People.Create(); // creates a lazy loading proxy
person.CompanyID = 123;
context.People.Add(person);
context.SaveChanges();
var company = person.Company; // lazy loading query happens here
}
没有延迟加载,您可以使用显式加载: using (var context = new MyDbContext())
{
var person = new Person();
person.CompanyID = 123;
context.People.Add(person);
context.SaveChanges();
context.Entry(person).Reference(p => p.Company).Load(); // explicit loading
var company = person.Company; // no query anymore,Company is already loaded
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 在Response.Redirect之后获取上一页网址
- asp.net-core – 使用Entity Framework 7处理乐观并发的最佳
- asp.net-mvc-3 – 模型验证/ ASP.NET MVC 3 – 条件必需属性
- asp.net-mvc – 将布尔属性编辑器转换为MVC视图中的下拉列表
- asp.net-mvc – 在MVC3中的错误 – 请求永远不会超时 在同一
- asp.net-mvc – ASP.NET MVC 6中的文件IO Close()方法错误
- asp.net-mvc – 我可以获取html.HiddenFor / Html.Hidden创
- asp.net-mvc – 我如何使用一个新的Phil的路由网络
- asp.net – 如何使用AntiXss Library正确清理内容?
- 在Asp.Net中使用JQuery绑定DropDownlists
推荐文章
站长推荐
- asp.net – Jquery datepicker:验证日期mm/dd/y
- asp.net-mvc – 如何构建一个简单的ASP.NET MVC应
- asp.net-mvc – 无法让defaultRedirect工作
- asp.net-mvc-3 – 如何在Asp.Net Mvc 3中显示自定
- global-variables – MVC 3 Razor _ViewStart中的
- 如何在asp.Net中的脚本标签上使用runat =“serve
- asp.net-mvc – 为现有项目添加标识
- asp.net-mvc-3 – 具有确认对话框的MVC3 Actionl
- asp.net-mvc – 用VB.net 2008开始ASP.NET MVC
- asp.net实现生成缩略图及给原始图加水印的方法示
热点阅读
