У меня есть 2 таблицы IncomingCheck
и OutgoingCheck
, которые содержат множество элементов History .Чтобы добиться этого, я использовал наследование и унаследовал 2 класса для входящей и исходящей истории.
public class IncomingCheck
{
[Key]
public int Id { get; set; }
public virtual IList<IncomingCheckHistory> History { get; set; }
//... other stuff
}
public class OutgoingCheck
{
[Key]
public int Id { get; set; }
public virtual IList<OutgoingCheckHistory> History { get; set; }
//... other stuff
}
public class CheckHistory
{
[Key]
public int Id { get; set; }
//... other stuff
}
public class IncomingCheckHistory : CheckHistory
{
public IncomingCheck IncomingCheck { get; set; }
}
public class OutgoingCheckHistory : CheckHistory
{
public OutgoingCheck OutgoingCheck { get; set; }
}
Этот подход работает отлично.В моей базе данных у меня есть таблица с именем CheckHistories
с двумя обнуляемыми столбцами с именами [IncomingCheck_Id]
и [OutgoingCheck_Id]
.
Теперь я создал представление на IncomingCheck
, которое я создал в Sql Server Management Studio, и ямогу получить свои данные, используя EF:
public class ViewIncomingCheck
{
[Key]
public int Id { get; set; }
public virtual IList<IncomingCheckHistory> History { get; set; }
//... other stuff
}
Пока все хорошо, но теперь я хочу, чтобы Entity Framework автоматически загружал элементы History
, но при попытке загрузить данные я получаю следующую ошибку:
SqlException: Invalid column name 'ViewIncomingCheck_Id'.
Invalid column name 'ViewIncomingCheck_Id'.
Я предполагаю, что EF ищет столбец с именем ViewIncomingCheck_Id
в таблице IncomingCheckHistory
, но не может его найти.
Isесть способ сказать EF, что он должен использовать IncomingCheck_Id
вместо ViewIncomingCheck_Id
?