Изменения документа linq2db. InsertOrUpdate all properties.
Редактировал(а) Alexandr Fokin 2025/06/22 16:10
отредактировано Alexandr Fokin
на 2025/06/22 16:10
на 2025/06/22 16:10
отредактировано Alexandr Fokin
на 2025/06/22 16:07
на 2025/06/22 16:07
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,7 +1,5 @@ 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]] 5 5 |(% style="width:132px" %) |(% style="width:1304px" %)((( 6 6 |(% style="width:212px" %)Вызов с ручным маппингом|(% style="width:1050px" %){{code language="c#"}}await dbContext.Entities.InsertOrUpdateAsync( 7 7 () => new MyEntity() ... ... @@ -9,7 +9,7 @@ 9 9 UniqueKey = entity.UniqueKey 10 10 }, 11 11 onDuplicateKeyUpdateSetter: null, 12 - keySelector: () => new MyEntity() { UniqueKey = default}10 + keySelector: () => new MyEntity() { UniqueKey = "1" } 13 13 );{{/code}} 14 14 |(% style="width:212px" %)Автоматическое формирование выражение с заполнением всех insert свойств.|(% style="width:1050px" %){{code language="c#"}}public static class LinqToDBHelper 15 15 { ... ... @@ -49,9 +49,11 @@ 49 49 |(% style="width:212px" %)Использование автоматического выражения.|(% style="width:1050px" %){{code language="c#"}}await dbContext.Entities.InsertOrUpdateAsync( 50 50 LinqToDBHelper.InsertInitAllExpression(entity, dbContext.MappingSchema), 51 51 onDuplicateKeyUpdateSetter: null, 52 - keySelector: () => new MyEntity() { UniqueKey = default50 + keySelector: () => new MyEntity() { UniqueKey = "1" } 53 53 );{{/code}} 54 54 55 55 56 56 ))) 57 57 |(% style="width:132px" %) |(% style="width:1304px" %) 56 + 57 +