这对已知类型工作正常:
var jsonData = JsonConvert.DeserializeObject<IEnumerable<ModelName>>(smalljson);
但是当我使模型通用时出现此错误:
类型“T”必须是引用类型才能将其用作泛型类型或方法“DataOperationsCatalog.LoadFromEnumerable”中的参数“TRow”
代码:
var jsonData = JsonConvert.DeserializeObject<IEnumerable<T>>(smalljson);
IDataView dataView = context.Data.LoadFromEnumerable(jsonData);
double perc = trainPercentage / 100.0;
DataOperationsCatalog.TrainTestData dataSplit = context.Data.TrainTestSplit(dataView, testFraction: perc);
SplitDatasets splitDatasets;
return splitDatasets = new SplitDatasets()
{
TestDataset = JsonConvert.SerializeObject(context.Data.CreateEnumerable<T>(dataSplit.TestSet, reuseRowObject: true)),
TrainDataset = JsonConvert.SerializeObject(context.Data.CreateEnumerable<T>(dataSplit.TrainSet, reuseRowObject: true))
};