В моей базе данных две таблицы:
public class PARENT
{
public string ID_PARENT { get; set; }
public int? ID_PARENT_BIS { get; set; }
public List<CHILD> CHILDREN { get; set; }
}
Эта таблица имеет первичный ключ: ID_PARENT
.
ID_PARENT_BIS
используется в нескольких отношениях.
public class CHILD
{
[Required]
public string PID_CHILD { get; set; }
public int ID { get; set; }
public int? ID_PARENT_BIS { get; set; }
[Required]
public string ID_EXTCHILD { get; set; }
}
Между обоими существуют отношения многие к одному. Вот карта:
modelBuilder.Entity<PARENT>(entity =>
{
entity.HasKey(e => e.ID_PARENT);
entity.HasMany(a => a.CHILDREN)
.WithOne()
.HasForeignKey(i => i.ID_PARENT_BIS)
.HasPrincipalKey(i => i.ID_PARENT_BIS);
});
Отображение верно, но когда я хочу получить все элементы PARENT
, я получаю следующую ошибку:
Произошло необработанное исключение при обработке запроса. InvalidCastException: двоеточие не имеет значения NULL (столбец содержит нулевые данные)
Мои отношения должны быть настроены для работы с ID_PARENT_BIS
, а не ID_PARENT
. Потому что ID_PARENT_BIS
может быть нулевым в базе данных. Это обязательные условия проекта.
Так возможно ли это сделать с помощью Entity Framework Core?
Спасибо!