Дело в том, что если вы попытаетесь добавить некоторую строку, используя только целое число в качестве внешнего ключа, как показано ниже:
db.tablename.Add(new tablename{
name = "hello",
FK_IdofanotherTable = 5
});
db.SaveChanges();
Тогда сущности не волнует немедленное связывание объекта, вы не будете получить доступ к связанному объекту как свойству.
Вот как это на самом деле делается в современной Entity Framework:
var TheActualCompleteObject = db.AnotherTable.First(t => t.id == 5);
db.tablename.Add(new tablename{
name = "hello",
AnotherTable = TheActualCompleteObject
});
db.SaveChanges();
Итак ... в общем, вы все равно загрузите объект, это не сделает ничего быстрее, но будет более последовательным. Вы сможете перемещаться по свойствам внешних ключей.
Если это невозможно, то вам придется запросить обратно ПОСЛЕ SaveChanges
, чтобы получить ваш объект и получить доступ к внешним свойствам (с нетерпением загружая их, из Конечно, или это же катастрофа) * 1012 *
Пример:
_dbContext.Configuration.LazyLoadingEnabled = false;
_dbContext.Set<MYTYPE>().Add(myObject);
await _dbContext.SaveChangesAsync(ct);
var v = _dbContext.First(t => t.id == myObject.id);
var fk_prop = v.Property1;