EF Core 3.1 как автоматизировать отношения «многие ко многим» - PullRequest
2 голосов
/ 20 февраля 2020

Я построил модель базы данных в. NET Базовая структура Entity с подходом БД в первую очередь. В моей базе данных есть несколько отношений «многие ко многим», и все они представлены в виде объединяющей таблицы.

Примерно так:

public partial class Test1
{
    public Test1()
    {
        Test1_Test2= new HashSet<Test1_Test2>();
    }

    public int Id { get; set; }
    ..

    public virtual ICollection<Test1_Test2> Test1_Test2{ get; set; }
}

public partial class Test2
{
    public Test2()
    {
        Test1_Test2= new HashSet<Test1_Test2>();
    }

    public int Id { get; set; }
    ..

    public virtual ICollection<Test1_Test2> Test1_Test2{ get; set; }
}

public partial class Test1_Test2
{
    public int Test1Id{ get; set; }
    public int Test2Id{ get; set; }

    public virtual Test1 Test1{ get; set; }
    public virtual Test2 Test2{ get; set; }
}

Компания EF создала Fluent API, поддерживающий эту структуру, с внешними ключами и составным первичным ключом в столик

Когда я должен что-то добавить в эти отношения, это своего рода утомительная операция, в которой я должен что-то сделать в соответствии с этим, чтобы правильно заполнить мою таблицу присоединения:

_context.Test1.Add(Test1);
_context.Test2.Add(Test2);
Test1_Test2.Test1 = Test1;
Test1_Test2.Test2 = Test2;
_context.Test1_Test2.Add(Test1_Test2);
_context.SaveChanges();

Из старого EF in. NET Framework я помню, что было довольно просто выполнить функциональность автоматического средства, которая позволила бы мне делать только следующее:

Test1.Test2 = Test2; 
_context.Test1.Add(Test1);
_context.SaveChanges();

Это Это удобно, так как EF выясняет, как автоматически заполнять таблицу соединений. Кроме того, это гораздо удобнее, когда мне приходится делать запросы из этих таблиц.

Поэтому, как мне добавить функциональность «automapper». Net Сначала Core EF DB - это вообще поддерживается?

1 Ответ

3 голосов
/ 20 февраля 2020

Многие-ко-многим

Отношения многие-ко-многим без класса сущности для представления таблицы объединения еще не поддерживаются. Однако вы можете представить отношение «многие ко многим», включив класс сущностей для таблицы соединений и сопоставив два отдельных отношения «один ко многим».

Отношения (базовые документы EF)

В качестве частичного обходного пути вы можете добавить свойство NotMapped или функцию, которая пересекает две взаимосвязи. Вы просто не можете писать запросы, связанные со свойством NotMapped.

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