我遇到了问题Only parameterless constructors and initializers are supported in LINQ to Entities.
,并且我不确定如何解决这个问题,我可以手动删除构造函数并手动初始化它们,但是因为代码已经存在,所以我想知道是否可以做任何事情。
var entries = Db.Devices.Select(device => new DeviceDetailsModel(device)).ToList();
devices.AddRange(entries);
,这是类
的构造函数 public DeviceDetailsModel(Device device)
{
DeviceID = device.DeviceID;
IPAddress = device.IPAddress;
Alias = device.Alias;
DeviceName = device.DeviceName;
}
答案 0 :(得分:2)
您使用Linq实体而不仅仅是LINQ对象。那是不同的。 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();