У меня есть таблица моделей, которая мне нужна для получения данных из AWS Dynamo Db.
[DynamoDBTable("Table1")]
public class BuilderData
{
[DynamoDBHashKey("Id")]
public string Id { get; set; }
[DynamoDBProperty("FileName")]
public string FileName { get; set; }
[DynamoDBRangeKey]
public DateTime createdTimeStamp { get; set; }
}
Я написал общий метод, который будет принимать объекты значений и ключи, которые будут извлекаться из этого, используямодель общего запроса.
Здесь тип T: BuilderData
public async Task<List<T>> Filter<T>(string tableName, SearchPost searchPost) where T : class
{
List<T> results = new List<T>();
DynamoDBContext context = new DynamoDBContext(client);
List<ScanCondition> scans = new List<ScanCondition>();
foreach (var scan in searchPost.ScanPosts)
{
scans.Add(new ScanCondition(scan.Key, (ScanOperator)scan.Operator, scan.Value));
}
Table dbCatalog = Table.LoadTable(client, tableName);
Trace.WriteLine($"RECORDS MATCHED : {results.Count}", "INFO");
AsyncSearch<T> result = context.ScanAsync<T>(scans);
do
{
List<T> docs = await result.GetNextSetAsync();
results.AddRange(docs);
} while (!result.IsDone);
return results;
}
Я пытаюсь отправить запрос, похожий на этот, для объекта searchPost.ScanPosts
-
{
"scanPosts": [
{
"key": "createdTimeStamp",
"operator": 12,
"value":[ "2018-11-27 00:00:00.000000","2018-11-27 00:00:00.000000"]
}
]
}
Когда я выполняю в строке - AsyncSearch<T> result = context.ScanAsync<T>(scans);
Выдает ошибку как -
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
An unhandled exception has occurred while executing the request.
System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'System.String'.
at Amazon.DynamoDBv2.Converter`1.TryTo(Object value, Primitive& p) in E:\JenkinsWorkspaces\v3-trebuchet-release\AWSDotNetPublic\sdk\src\Services\DynamoDBv2\Custom\Conversion\DynamoDBEntryConversion.cs:line 630
Я не уверен, как решить эту проблему, так как тип возвращаемого значения не является массивом для datetimeбыть отдельными документами.Не уверен, почему это вызывает проблему.