Я пытаюсь сериализовать и десериализовать список объектов.Сначала я генерирую список:
var groups = db.AssetGroupList.ToList();
foreach(var group in groups)
{
group.AssetSubGroupList = db.AssetSubGroupList.Where(p => p.AssetGroupId == group.AssetGroupId).ToList();
foreach(var subGroup in group.AssetSubGroupList)
{
subGroup.AssetList = db.AssetList.Where(p => p.AssetSubGroupId == subGroup.AssetSubGroupId).ToList();
foreach(var asset in subGroup.AssetList)
{
asset.ReportAsset = null;// db.ReportAssetList.Where(p => p.AssetId == asset.AssetId).FirstOrDefault();
}
}
}
Затем я сериализую его и десериализовываю:
var json_serializer = new JavaScriptSerializer();
var json = json_serializer.Serialize(groups);
List<AssetGroup> routes_list =(List<AssetGroup>)json_serializer.DeserializeObject(json);
Однако я получаю следующую ошибку: System.InvalidCastException: «Невозможно привести объект типа»System.Object [] 'для ввода' System.Collections.Generic.List`1 [CopyToCosmosDB.AssetGroup] '.'
У меня есть следующие модели:
[Table("AssetGroup")]
public class AssetGroup
{
[Key]
public int AssetGroupId { get; set; }
public int Code { get; set; }
public string Name { get; set; }
[NotMapped]
public List<AssetSubGroup> AssetSubGroupList { get; set; }
}
public class AssetSubGroup
{
[Key]
public int AssetSubGroupId { get; set; }
[InverseProperty("AssetSubGroupList")]
public int AssetGroupId { get; set; }
public int Code { get; set; }
public string Name { get; set; }
[NotMapped]
public List<Asset> AssetList { get; set; }
}
[Table("Asset")]
public class Asset
{
[Key]
public int AssetId { get; set; }
public int Code { get; set; }
public string Name { get; set; }
public int AssetSubGroupId { get; set; }
[NotMapped]
public ReportAsset ReportAsset { get; set; }
}
[Table("ReportAsset")]
public class ReportAsset
{
[Key]
public int ReportAssetId { get; set; }
public decimal Rating { get; set; }
public int ReportId { get; set; }
public int AssetId { get; set; }
public string Remark { get; set; }
public DateTime? Updated { get; set; }
//public Asset Asset { get; set; }
}