我有一个带有客户的DB-First Entity Framework设置,该客户具有指向表Address的可空外键。 客户模型的定义方式如下:
public class Customer
{
[DataMember]
public int Id { get; set; }
[DataMember]
public int? AddressId { get; set; } // same name as foreign key field on db
[DataMember]
public Address Address { get; set; }
}
当我从数据库加载具有相关地址的客户时:
Customer getCustomerById(int id) {
return _db.Customers.Include("Address").SingleOrDefault(c => c.Id == id);
}
我得到了Customer
并设置了相关的Address
并用正确的字段填充,但是当customer.AddressId
和customer.Address.Id
设置为0
时, db记录类似于:
Id | AddressId
----------------
12 | 3288
为什么会这样?我在网上找不到关于此的任何信息,只有关于急切加载不能与Include
一起使用的警告,但是在客户中,其他(不可为空)字段包含的加载方式与正确ID相同
谢谢您的时间。