@@ -34,18 +34,18 @@ public static async Task InitModelAndCreateTableAsync(CancellationToken cancella
34
34
BaseAddress = new Uri (" http://localhost:8088" )
35
35
};
36
36
var httpClientFactory = new HttpClientFactory (httpClient );
37
- var restApiProvider = new KSqlDbRestApiClient (httpClientFactory , builder );
37
+ var restApiClient = new KSqlDbRestApiClient (httpClientFactory , builder );
38
38
39
39
var entityCreationMetadata = new EntityCreationMetadata (kafkaTopic : nameof (Payment ), partitions : 3 );
40
40
41
- var responseMessage = await restApiProvider .CreateTableAsync <Payment >(entityCreationMetadata , true , cancellationToken );
41
+ var responseMessage = await restApiClient .CreateTableAsync <Payment >(entityCreationMetadata , true , cancellationToken );
42
42
var content = await responseMessage .Content .ReadAsStringAsync (cancellationToken );
43
43
44
44
entityCreationMetadata = new EntityCreationMetadata (kafkaTopic : nameof (Account ), partitions : 1 )
45
45
{
46
46
Replicas = 3
47
47
};
48
- responseMessage = await restApiProvider .CreateTableAsync <Account >(entityCreationMetadata , true , cancellationToken );
48
+ responseMessage = await restApiClient .CreateTableAsync <Account >(entityCreationMetadata , true , cancellationToken );
49
49
}
50
50
```
51
51
@@ -189,7 +189,7 @@ var entityCreationMetadata = new EntityCreationMetadata(kafkaTopic: nameof(PocoW
189
189
{
190
190
Replicas = 3
191
191
};
192
- var responseMessage = await restApiProvider .CreateStreamAsync <PocoWithHeader >(entityCreationMetadata , true );
192
+ var responseMessage = await restApiClient .CreateStreamAsync <PocoWithHeader >(entityCreationMetadata , true );
193
193
194
194
private record PocoWithHeader
195
195
{
@@ -317,3 +317,53 @@ CREATE TABLE IF NOT EXISTS Records (
317
317
Headers ARRAY< STRUCT< Key VARCHAR , Value BYTES>>
318
318
) WITH ( KAFKA_TOPIC= ' my_topic' , VALUE_FORMAT= ' Json' , PARTITIONS= ' 3' );
319
319
```
320
+
321
+ ### IgnoreInDML
322
+ ** v6.4.0**
323
+
324
+ The purpose of the ` IgnoreInDML ` function is to exclude specific fields from INSERT statements.
325
+
326
+ ``` C#
327
+ using System .ComponentModel .DataAnnotations ;
328
+
329
+ public class Actor
330
+ {
331
+ [Key ]
332
+ public int Id { get ; set ; }
333
+ public string Name { get ; set ; } = null ! ;
334
+ }
335
+ ```
336
+
337
+ ``` C#
338
+ using ksqlDb .RestApi .Client .FluentAPI .Builders ;
339
+ using ksqlDB .RestApi .Client .KSql .Query .Context ;
340
+ using ksqlDB .RestApi .Client .KSql .RestApi ;
341
+ using ksqlDB .RestApi .Client .KSql .RestApi .Http ;
342
+
343
+ var ksqlDbUrl = " http://localhost:8088" ;
344
+
345
+ var httpClientFactory = new HttpClientFactory (new HttpClient () { BaseAddress = new Uri (ksqlDbUrl ) });
346
+
347
+ var restApiClientOptions = new KSqlDBRestApiClientOptions
348
+ {
349
+ ShouldPluralizeFromItemName = false ,
350
+ };
351
+
352
+ var restApiClient = new KSqlDbRestApiClient (httpClientFactory , restApiClientOptions );
353
+
354
+ var modelBuilder = new ModelBuilder ();
355
+ modelBuilder .Entity <Actor >()
356
+ .Property (c => c .Name )
357
+ .IgnoreInDML ();
358
+
359
+ var actor = new Actor { Id = 1 , Name = " Matthew David McConaughey" };
360
+
361
+ var ksql = restApiClient .ToInsertStatement (actor );
362
+ ```
363
+
364
+ Generated KSQL:
365
+ ``` SQL
366
+ INSERT INTO Actor (Id) VALUES (1 );
367
+ ```
368
+
369
+ ` WithHeaders ` internally automatically marks the property to be ignored in DML statements.
0 commit comments