Изменения документа linq2db. InsertOrUpdate all properties.

Редактировал(а) Alexandr Fokin 2025/06/22 16:10

От версии 1.1 >
отредактировано Alexandr Fokin
на 2025/06/22 16:07
К версии < 1.3
отредактировано Alexandr Fokin
на 2025/06/22 16:10
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Содержимое
... ... @@ -1,5 +1,7 @@
1 1  |(% style="width:132px" %) |(% style="width:1304px" %)Framework API содержит insert метод, который позволяет указать entity, не указываю проекцию всех заполняемых свойств.
2 2  Но у метода InsertOrUpdate я такой вариации не нашел. Ее можно реализовать, собрав выражение [[Expression tree ~~| Деревья выражений>>doc:Разработка.NET.C#.Рантайм и типы.Expression tree | Деревья выражений.WebHome]] руками.
3 +|(% style="width:132px" %) |(% style="width:1304px" %)Expression to create an instance with object initializer in C#
4 +[[https:~~/~~/www.iditect.com/faq/csharp/expression-to-create-an-instance-with-object-initializer-in-c.html>>https://www.iditect.com/faq/csharp/expression-to-create-an-instance-with-object-initializer-in-c.html]]
3 3  |(% style="width:132px" %) |(% style="width:1304px" %)(((
4 4  |(% style="width:212px" %)Вызов с ручным маппингом|(% style="width:1050px" %){{code language="c#"}}await dbContext.Entities.InsertOrUpdateAsync(
5 5   () => new MyEntity()
... ... @@ -7,7 +7,7 @@
7 7   UniqueKey = entity.UniqueKey
8 8   },
9 9   onDuplicateKeyUpdateSetter: null,
10 - keySelector: () => new MyEntity() { UniqueKey = "1" }
12 + keySelector: () => new MyEntity() { UniqueKey = default }
11 11   );{{/code}}
12 12  |(% style="width:212px" %)Автоматическое формирование выражение с заполнением всех insert свойств.|(% style="width:1050px" %){{code language="c#"}}public static class LinqToDBHelper
13 13  {
... ... @@ -47,11 +47,9 @@
47 47  |(% style="width:212px" %)Использование автоматического выражения.|(% style="width:1050px" %){{code language="c#"}}await dbContext.Entities.InsertOrUpdateAsync(
48 48   LinqToDBHelper.InsertInitAllExpression(entity, dbContext.MappingSchema),
49 49   onDuplicateKeyUpdateSetter: null,
50 - keySelector: () => new MyEntity() { UniqueKey = "1" }
52 + keySelector: () => new MyEntity() { UniqueKey = default }
51 51   );{{/code}}
52 52  
53 53  
54 54  )))
55 55  |(% style="width:132px" %) |(% style="width:1304px" %)
56 -
57 -