如何在DbUpdateConcurrencyException中加载多个相关实体

时间:2012-11-02 15:15:44

标签: asp.net-mvc-3

我有3个相关的表

  1. 人物实体:来自地址实体(地址和地址1)的两个外键和来自所有者表的一个外键

  2. 地址实体从Owners表中有一个外键

  3. 人员视图包含来自地址实体的字段以及跟踪并发检查

    var entry = ex.Entries.Single();
    var databaseValues = (Person)entry.GetDatabaseValues().ToObject();
    var clientValues = (Person)entry.Entity;
    

    适用于Person字段。

    然而,当我尝试访问

    databasevalues.Address.City或databasevalues.Address1.City它给出了一个空异常。我认为这是由于地址实体未在开头加载

    征求意见

1 个答案:

答案 0 :(得分:0)

您可以尝试在查询中明确加载相关实体:

IQueryable<Person> persons = DataContext.Persons.Where(p => p.City == "Hoboken").Include("Address")

将显式加载返回的人员实例的相关地址条目。

另一个选项是禁用edmx文件中的延迟加载选项;打开文件,然后打开属性面板,设置Lazy Loading = false。