EF 6 сначала кодирует таблицу как словарную таблицу для внешних ключей от других объектов - PullRequest
0 голосов
/ 24 сентября 2019

Я новичок в EF и C #.Я работаю над проектом с использованием кода EF 6;Мне нужно несколько таблиц, которые должны работать как словари - что я имею в виду ... скажем, у меня есть 3 таблицы, автоматически сгенерированные в моих базах данных SQL Server: A, B, C.

Кроме того, есть огромные,сложный объект для моей модели, который имеет таблицу A.

Объект "A" также имеет список объектов B, и каждый объект B имеет требуемый тип - типы являются объектами "C", и они должны быть в таблице C -они должны работать как словарь.У объекта "B" есть внешний ключ C.ID, и я бы хотел, чтобы EF мог взять этот идентификатор и просто присоединить данные из таблицы C, но вставить новую строку в таблицу C, если тип объекта "B" еще не существует.

public class A 
{
    public int ID { get; set; }
    ...
    public virtual ICollection<B> B { get; set; }
}

public class B 
{
    public int ID { get; set; }
    ...
    public int? cID { get; set; }
    public virtual C C { get; set; }
}

public class C
{
    public int cID { get; set; }
    public string Type { get; set; }
}

Можно ли сделать с EF 6 реализацию с первым кодом?Я уже пытался смоделировать его с помощью Fluent API и создать отношение один-или-ноль-к-одному (один «B» имеет ноль или один тип), даже если мне нужна требуемая ассоциация, уже пробовал однонаправленную ассоциацию, которая должна работать, нок сожалению нет.У меня все еще есть дубликаты в моей таблице C, всякий раз, когда я добавляю объект "A".

...