Использовать первичный ключ во время транзакции в рамках сущности - PullRequest
0 голосов
/ 28 января 2019

Я создаю несколько моделей, вставляю их с помощью «InsertAsync», и в конце сохраняю изменения с помощью ядра платформы сущностей.

Я хотел бы сделать следующее:

MasterDbContext.table1.AddAsync(object1);

var object2 = new table2()
            {
                Action = 1,
                PrimaryRef = object1.primaryKey,
            };

MasterDbContext.table2.AddAsync(object2);

Но это значение равно нулю, знаете ли вы, как я могу иметь вторую вставку со значением?

Я имею в виду, если они выполняются один за другим, структура сущности должна иметь возможность отобразить значение,если так, кто-нибудь знает как?спасибо.

*** ОБНОВЛЕНИЕ

В основном, чтобы сделать его более простым:

У меня есть цикл foreach, где добавить (без сохранения) несколько объектов в table1 и table2 .

В том же цикле я должен записать первичные ключи обеих таблиц в table3 (две разные строки)

А потом сохраните все в конце.

как я могу узнать, что EF знает, что нужно взять эти primaryKeys?

1 Ответ

0 голосов
/ 28 января 2019

Вам необходимо определить отношение внешнего ключа между двумя объектами базы данных в Entity Framework.

Итак, для вашей второй сущности (таблица2) вы должны добавить

[ForeignKey("PrimaryRefId")] public table1 PrimaryRef { get; set; }

И в вашу таблицу1Сделайте ссылку назад:

public Collection<table2> SecondaryObjects { get; set; }

Теперь EntiryFramework знает таблицы связаны, и вы можете использовать это отношение.

var t2 = new Table2 { Name = "Stuff child" };
var t1 = new Table1 { Name = "Stuff",  PrimaryRef = t2 };

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