无法通过构造函数将实体反序列化为视图模型类型
Cannot serialise entites to viewmodel type via constructor
我有问题 Only parameterless constructors and initializers are supported in LINQ to Entities.
,我不确定如何解决这个问题,我可能会删除构造函数并手动初始化它们,但是由于代码已经存在,所以我想知道是否可以完成。
var entries = Db.Devices.Select(device => new DeviceDetailsModel(device)).ToList();
devices.AddRange(entries);
这里是 class
的构造函数
public DeviceDetailsModel(Device device)
{
DeviceID = device.DeviceID;
IPAddress = device.IPAddress;
Alias = device.Alias;
DeviceName = device.DeviceName;
}
您使用的是 LINQ to Entities,而不仅仅是 LINQ to objects。这就是区别。 Linq to Entities 将您的 Linq 查询转换为 SQL 查询,它不知道如何转换您的构造函数。改为使用初始值设定项 - Linq to Entity 可以处理:
var entries = Db.Devices.Select(x => new DeviceDetailsModel
{
DeviceID = x.DeviceID;
IPAddress = x.IPAddress;
Alias = x.Alias;
DeviceName = x.DeviceName;
}).ToList();
我有问题 Only parameterless constructors and initializers are supported in LINQ to Entities.
,我不确定如何解决这个问题,我可能会删除构造函数并手动初始化它们,但是由于代码已经存在,所以我想知道是否可以完成。
var entries = Db.Devices.Select(device => new DeviceDetailsModel(device)).ToList();
devices.AddRange(entries);
这里是 class
的构造函数 public DeviceDetailsModel(Device device)
{
DeviceID = device.DeviceID;
IPAddress = device.IPAddress;
Alias = device.Alias;
DeviceName = device.DeviceName;
}
您使用的是 LINQ to Entities,而不仅仅是 LINQ to objects。这就是区别。 Linq to Entities 将您的 Linq 查询转换为 SQL 查询,它不知道如何转换您的构造函数。改为使用初始值设定项 - Linq to Entity 可以处理:
var entries = Db.Devices.Select(x => new DeviceDetailsModel
{
DeviceID = x.DeviceID;
IPAddress = x.IPAddress;
Alias = x.Alias;
DeviceName = x.DeviceName;
}).ToList();