Entity framework 外键的Id设置为0

Entity framework 外键的Id设置为0,entity-framework,foreign-keys,Entity Framework,Foreign Keys,我有一个DB First Entity Framework设置,客户的表地址外键为空。 客户模型的定义如下: public class Customer { [DataMember] public int Id { get; set; } [DataMember] public int? AddressId { get; set; } // same name as foreign key field on db [DataMember] pu

我有一个DB First Entity Framework设置,客户的表地址外键为空。 客户模型的定义如下:

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; }
}
当我从db加载具有关联地址的客户时:

Customer getCustomerById(int id) {
    return _db.Customers.Include("Address").SingleOrDefault(c => c.Id == id);
}
我使用设置的相关
地址
获取
客户
,并用正确的字段填充,但是
客户.AddressId
客户.Address.Id
设置为
0
,而在db中,记录类似于:

Id  | AddressId
----------------
12  |      3288
为什么会这样?我在网上找不到任何关于这方面的信息,只有一个警告,关于“急切加载”不能使用
Include
s,但在Customer中,还有其他字段(不可为空)以与加载正确Id相同的方式包含


谢谢你抽出时间。

谢谢你,史蒂夫。您的链接似乎不好:您是否指出了需要重新发布的特定资源,或者我可以用谷歌搜索“how to log SQL”并就此结束对否则,这里是另一个尝试。
地址
类是什么样子的?地图画得好吗?看起来是这样。id字段标记为键,并按照SQL Server标准大写:
[DataContract(IsReference=true)]公共类地址{[DataMember][key]public int id{get;set;}…
。此外,所有
地址
字段(id本身除外)都从数据库中正确加载。