我有父类
public class ImageInfo {}
和孩子
public class ImageInfoVM: ImageInfo {
//fields
public ImageInfoVM(ImageInfo img)
{
this.name = img.name; //etc
}
我尝试使用IEnumerable<ImageInfo> model = db.ImageInfo.ToList()
从数据库中读取数据
并将此数据分配给ImageInfoVM iivm
,但没有成功。
我尝试过这个解决方案https://stackoverflow.com/a/9885823/632224,我认为这是我需要做的,但我收到错误The class 'ImageInfoVM' has no parameterless constructor
。在此查询中
List<ImageInfoVM> iivm = model.Select(m => new ImageInfoVM(m)).ToList();
有人可以帮忙吗?
答案 0 :(得分:-1)
这可能是一个错字吗?
检查您的构造函数名称 ImageInfoVVM
而不是ImageInfoVM
public class ImageInfoVM: ImageInfo {
//fields
public ImageInfoVVM(ImageInfo img)
{
this.name = img.name; //etc
}
答案 1 :(得分:-1)
当你没有&#34;无参数构造函数&#34时,你会怎么做?
您可以创建无参数构造函数。
我在我的子类中添加了空构造函数,所以它现在看起来像
public class ImageInfoVM: ImageInfo {
//fields
public ImageInfoVM()
{ }
public ImageInfoVM(ImageInfo img)
{
this.name = img.name; //etc
}
}
并且一切都运作良好..
答案 2 :(得分:-1)
您没有提到您使用Entity框架和LINQ to SQL
您的问题是LINQ to SQL不支持具有Select
语句内参数的构造函数。
您的查询是使用List
但不是IEnumerable
类型
您需要创建模型的List
List<ImageInfo> model = db.ImageInfo.ToList();
然后你的原始代码也可以在没有无参数构造器的情况下工作
List<ImageInfoVM> iivm = model.Select(m => new ImageInfoVM(m)).ToList();