@@ -20,8 +20,7 @@ static SloTableContext()
2020
2121 public sealed class Linq2dbClient ( string connectionString )
2222 {
23- public DataConnection Open ( )
24- => new ( new DataOptions ( ) . UseConnectionString ( "YDB" , connectionString ) ) ;
23+ public DataConnection Open ( ) => new ( new DataOptions ( ) . UseConnectionString ( "YDB" , connectionString ) ) ;
2524 }
2625
2726 protected override Linq2dbClient CreateClient ( Config config ) => new ( config . ConnectionString ) ;
@@ -30,62 +29,31 @@ protected override async Task Create(Linq2dbClient client, int operationTimeout)
3029 {
3130 await using var db = client . Open ( ) ;
3231 db . CommandTimeout = operationTimeout ;
33-
34- await db . ExecuteAsync ( $@ "
35- CREATE TABLE `{ SloTable . Name } ` (
36- Guid Uuid,
37- Id Int32,
38- PayloadStr Text,
39- PayloadDouble Double,
40- PayloadTimestamp Timestamp,
41- PRIMARY KEY (Guid, Id)
42- )" ) ;
43-
32+ await db . ExecuteAsync (
33+ $@ " CREATE TABLE { SloTable . Name } ( Guid Uuid, Id Int32, PayloadStr Text, PayloadDouble Double, PayloadTimestamp Timestamp, PRIMARY KEY (Guid, Id) )") ;
4434 await db . ExecuteAsync ( SloTable . Options ) ;
4535 }
4636
4737 protected override async Task < int > Save ( Linq2dbClient client , SloTable sloTable , int writeTimeout )
4838 {
4939 await using var db = client . Open ( ) ;
5040 db . CommandTimeout = writeTimeout ;
51-
52- const string sql = @"
53- UPSERT INTO `{SloTable.Name}` (Guid, Id, PayloadStr, PayloadDouble, PayloadTimestamp)
54- VALUES (@Guid, @Id, @PayloadStr, @PayloadDouble, @PayloadTimestamp);" ;
55-
56- var affected = await db . ExecuteAsync (
57- sql ,
58- new DataParameter ( "Guid" , sloTable . Guid , DataType . Guid ) ,
41+ const string sql =
42+ @" UPSERT INTO {SloTable.Name} (Guid, Id, PayloadStr, PayloadDouble, PayloadTimestamp) VALUES (@Guid, @Id, @PayloadStr, @PayloadDouble, @PayloadTimestamp);" ;
43+ var affected = await db . ExecuteAsync ( sql , new DataParameter ( "Guid" , sloTable . Guid , DataType . Guid ) ,
5944 new DataParameter ( "Id" , sloTable . Id , DataType . Int32 ) ,
6045 new DataParameter ( "PayloadStr" , sloTable . PayloadStr , DataType . NVarChar ) ,
6146 new DataParameter ( "PayloadDouble" , sloTable . PayloadDouble , DataType . Double ) ,
62- new DataParameter ( "PayloadTimestamp" , sloTable . PayloadTimestamp , DataType . DateTime2 )
63- ) ;
64-
47+ new DataParameter ( "PayloadTimestamp" , sloTable . PayloadTimestamp , DataType . DateTime2 ) ) ;
6548 return affected ;
6649 }
6750
6851 protected override async Task < object ? > Select ( Linq2dbClient client , ( Guid Guid , int Id ) select , int readTimeout )
6952 {
7053 await using var db = client . Open ( ) ;
7154 db . CommandTimeout = readTimeout ;
72-
7355 var t = db . GetTable < SloRow > ( ) ;
74-
75- // Намеренно «используем» все столбцы, чтобы ReSharper не ругался на «неиспользуемые» поля.
76- var row = await t
77- . Where ( r => r . Guid == select . Guid && r . Id == select . Id )
78- . Select ( r => new
79- {
80- r . Guid ,
81- r . Id ,
82- r . PayloadStr ,
83- r . PayloadDouble ,
84- r . PayloadTimestamp
85- } )
86- . FirstOrDefaultAsync ( ) ;
87-
88- return row ;
56+ return await t . FirstOrDefaultAsync ( r => r . Guid == select . Guid && r . Id == select . Id ) ;
8957 }
9058
9159 protected override async Task < int > SelectCount ( Linq2dbClient client )
@@ -95,12 +63,12 @@ protected override async Task<int> SelectCount(Linq2dbClient client)
9563 }
9664
9765 [ Table ( SloTable . Name ) ]
98- private sealed class SloRow ( DateTime payloadTimestamp , double payloadDouble , string ? payloadStr , int id , Guid guid )
66+ private sealed class SloRow ( double payloadDouble , string ? payloadStr , DateTime payloadTimestamp , Guid guid )
9967 {
100- [ Column ] public Guid Guid { get ; } = guid ;
101- [ Column ] public int Id { get ; } = id ;
102- [ Column ] public string ? PayloadStr { get ; } = payloadStr ;
103- [ Column ] public double PayloadDouble { get ; } = payloadDouble ;
104- [ Column ] public DateTime PayloadTimestamp { get ; } = payloadTimestamp ;
68+ [ Column ] public Guid Guid { get ; set ; } = guid ;
69+ [ Column ] public int Id { get ; set ; }
70+ [ Column ] public string ? PayloadStr { get ; set ; } = payloadStr ;
71+ [ Column ] public double PayloadDouble { get ; set ; } = payloadDouble ;
72+ [ Column ] public DateTime PayloadTimestamp { get ; set ; } = payloadTimestamp ;
10573 }
10674}
0 commit comments