3

我有 3 个相关的表

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

  2. 地址实体有一个来自 Owners 表的外键

人员视图具有来自地址实体的字段并在跟踪并发检查时

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

适用于 Person 字段。

但是,当我尝试访问

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

征求建议

4

1 回答 1

0

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

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

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

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

于 2012-11-02T15:40:17.497 回答