У меня есть настройка 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);
}
Я получаю Customer с соответствующим Address задано и заполнено правильным полем, но customer.AddressId и customer.Address.Id установлены на 0, а в db запись выглядит примерно так:
Id | AddressId
----------------
12 | 3288
Почему это так? Я ничего не мог найти об этом в сети, только предупреждение о том, что Eager Loading не работает с Include s, но в клиенте есть другие (не имеющие значения) поля, включенные так же, как и загруженные с правильным идентификатором. [ ! d3]
Спасибо за ваше время.