Entity Framework Core: отношение многих к одному с обнуляемым внешним ключом - PullRequest
0 голосов
/ 01 июля 2019

В моей базе данных две таблицы:

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?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...