У меня есть две моделиПочему навигационная способность иногда возвращает null?
public class Indicator
{
public long IndicatorID { get; set; }
public string Name { get; set; }
public int MaxPoint { get; set; }
public string Comment { get; set; }
public DateTime DateChanged { get; set; }
public DateTime DateCreated { get; set; }
public virtual IList<CalculationType> CalculationTypes { get; set; }
}
public class CalculationType
{
public long CalculationTypeID { get; set; }
public string UnitName { get; set; }
public int Point { get; set; }
public DateTime DateCreated { get; set; }
public DateTime DateChanged { get; set; }
public virtual Indicator Indicator { get; set; }
}
У меня есть базы данных завода
public class DatabaseFactory
{
private StankinQuestionnaireEntities dataContext;
public StankinQuestionnaireEntities Get()
{
return dataContext ?? (dataContext = new StankinQuestionnaireEntities());
}
}
и имущество, которое относится к databaseFactory
protected StankinQuestionnaireEntities DataContext
{
get { return dataContext ?? (dataContext = DatabaseFactory.Get()); }
}
Я использую Autofac и РЕГИСТРИРУЙСЯ DatabaseFactory
builder.RegisterType<DatabaseFactory>().As<IDatabaseFactory>().InstancePerRequest();
на моем хранилище я пытаюсь данные получить от свойства навигации двумя способами
первая линия работает отлично (CalculationType содержит один элемент)
но вторая возвратная линия нуль на имущество Расчетный тип
Почему?
UPDATE Я обнаружил, что если удалить строку «.InstancePerRequest()», все будет работать. Но мне это не подходит.
UPDATE2 по какой-то причине, эф не создал прокси класс
В первом случае у вас есть прокси (см. Его тип исполнения). Во втором случае у вас есть базовый тип модели. Поведение свойств навигации, которое вы ожидаете, работает только на прокси-серверах, поскольку прокси-серверы - это подтипы вашего базового типа модели, которые переопределяют ваши свойства навигации, чтобы обеспечить легкую и ленивую загрузку. Если прокси не существует, структура не будет иметь возможности переопределить свойство навигации и дать вам поведение, которое вы хотите. –
@ TheodorosChatzigiannakis, но почему ef не создал прокси-класс? ProxyEnable set true http://savepic.net/6498011.png – kriper