![](/img/trans.png)
[英]AWS DynamoDB - Dynamically setting DynamoDBTable in object persistence model
[英]AWS DynamoDB Object Persistence Model: My class is unsupported, it cannot be instantiated
我設計了一個像這樣的簡單類:
[DynamoDBTable("MyTableName")]
public class MySimpleClass{
[DynamoDBHashKey]
public string Id { get; set; }
[DynamoDBProperty]
public DateTime TimeStamp { get; set; }
[DynamoDBProperty]
public string Message { get; set; }
public MySimpleClass(AnotherClass anotherClassMessage){
this.Id = anotherClassMessage.Id;
this.TimeStamp = anotherClassMessage.TimeStamp;
this.Message = anotherClassMessage.Message;
}
}
當我嘗試使用DynamoDBContext對象上下文對DynamoDB表進行持久化以使用以下方式轉換為DynamoDB對象持久性模型時:
context.ToDocument(data)
它在下面拋出異常e :
e.Message :類型myProject.myNameSpace.MySimpleClass不支持,無法實例化
e.StackTrace :位於Amazon.DynamoDBv2.DataModel.ItemStorageConfigCache.CreateStorageConfig(Type baseType,String ActualTableName類型)在Amazon.DynamoDBv2.DataModel.StorageConfig..ctor(ITypeInfo targetTypeInfo)在Amazon.DynamoDBv2.DataModel.ItemStorageConfig。 )(Amazon.DynamoDBv2.DataModel.DynamoDBContext.ObjectToItemStorage(Object toStore,Type objectType,Type objectType,Boolean keysOnly,DynamoDBFlatConfig flatConfig)at Amazon.DynamoDB2)。 .DynamoDBContext.ObjectToItemStorage [T](在Amazon.DynamoDBv2.DataModel.DynamoDBContext.ToDocument [T](T值,DynamoDBOperationConfig operationConfig)在Amazon.DynamoDBv2.DataModel.DynamoDBContext.ToDocument [T toStore,Boolean keysOnly,DynamoDBFlatConfig flatConfig) C:\\ MyProject \\ myProject4PersistanceOnDynamo \\ DynamoT中的myProject4PersistanceOnDynamo.DynamoTableWrapper.Persist [T](T數據)處的(T值) ableWrapper.cs:第101行(表示context.ToDocument(data) )
e.Source :AWSSDK.DynamoDBv2(版本:3.3.0.0 |運行版本:v4.0.30319)
我的myProject4PersistanceOnDynamo.DynamoTableWrapper.Persist [T](T data)是:
public void Persist<T>(T data)
{
// Client is a AmazonDynamoDBClient object with correct credentials
private DynamoDBContext context = new DynamoDBContext(Client)
try
{
var doc = context.ToDocument(data);
Table.PutItem(doc);
}
catch (Exception e)
{
throw e;
}
}
公共MySimpleClass(AnotherClass anotherClassMessage){
您需要一個沒有任何依賴關系的構造函數。
定義這樣的多態構造函數,
public MySimpleClass() {}
那應該解決問題。
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.