Изменения документа linq2db. InsertOrUpdate all properties.
Редактировал(а) Alexandr Fokin 2025/06/22 16:10
отредактировано Alexandr Fokin
на 2025/06/22 16:07
на 2025/06/22 16:07
отредактировано Alexandr Fokin
на 2025/06/22 16:10
на 2025/06/22 16:10
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -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 -