[英]Assign list of parent class reference with list of child class object does not work
[英]Assign parent class data to child list
我有父类
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();
有人可以帮忙吗?
可能是笔误?
检查您的构造函数名称ImageInfoVVM
而不是ImageInfoVM
public class ImageInfoVM: ImageInfo {
//fields
public ImageInfoVVM(ImageInfo img)
{
this.name = img.name; //etc
}
当您没有“无参数构造函数”时,您会怎么做?
您创建无参数构造函数。
我向我的子类添加了空构造函数,所以现在看起来像
public class ImageInfoVM: ImageInfo {
//fields
public ImageInfoVM()
{ }
public ImageInfoVM(ImageInfo img)
{
this.name = img.name; //etc
}
}
一切正常。
您没有提到您使用实体框架和 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();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.