При создании нового объекта, если я пытаюсь получить доступ к одному из полей внешнего ключа сразу после создания, я получаю исключение ссылки на объект.Вот код -
Call call = new Call()
{
....
StoreID = storeID, //foreign key of store
....
}
db.Calls.Add(call);
db.SaveChanges();
....
// do something with store
call.Store.Anything();
Это выдает:
Ссылка на объект не установлена для экземпляра объекта.
Поскольку call.Store
не отображается ни на один объект
Обратите внимание, что код работает отлично, если я не пытаюсь получить доступ к объекту Store.Если я перенаправляю пользователя, и вызов загружается с нуля, то доступ к объекту Store работает без проблем.
Как неприятный хак, я попытался
db.Entry(call).Reload();
, но даже это не помогло
Как сделать объект хранилища доступным сразу после создания?
Модель:
[Table("CALL_LOG")]
public class Call
{
.....
[Column("STORE_IID"), Required]
public int StoreID { get; set; }
[ForeignKey("StoreID")]
public virtual Store Store { get; set; }
.....
}