シリアライズしません。TableServiceContextは、私は次のようなデータ構造を持っているValueObjects
[DataServiceEntity]
public class User
{
public string RowKey { get; set; }
public string PartitionKey { get; set; }
public DateTime Timestamp { get; set; }
public AddressValueObject Address { get; set; }
}
[DataServiceEntity]
public class AddressValueObject
{
public string City { get; set; }
public string Street { get; set; }
}
は、今私はUserクラスの新しいインスタンスを作成し、以下の方法を使用して、Windows Azureテーブルストレージエミュレータにそれを永続化しようとしてるの:
void CreateAndSaveNewUser()
{
var userInstance = new User
{
RowKey = "SomeRowKey",
PartitionKey = "SomePartitionKey",
Address = new AddressValueObject
{
City = "SomeCity",
Street = "SomeStreet"
}
};
var tableServiceContext = CloudStorageAccount
.DevelopmentStorageAccount
.CreateCloudTableClient()
.GetDataServiceContext();
tableServiceContext.AddObject("UserTable", userInstance);
tableServiceContext.SaveChanges();
}
問題はAddressValueObjectが正しくシリアル化されていないことです。 ストレージには、AddressValueObjectというemtpyという列が1つしかありません。
AddressValueObject_CityおよびAddressValueObject_Streetの列は作成されません。
私は間違っていますか?私はいくつかの属性が欠けていますか?
Azureテーブルストレージは参照されたValueObjectsをサポートしますか?
ありがとうございました。