型号:
public class DataModel1
{
public string Id { get; set; }
public string Name { get; set; }
}
public class DataModel2
{
public string Id { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
}
我想将DataModel1添加到DataModel2作为下面的代码。
List<DataModel2> dataModel2List = new List<DataModel2>();
dataModel2List.Add(db.DataModel1.Select(row => row).FirstOrDefault()); // The best overloaded method match for 'System.Collections.Generic.List<DataModel2>.Add(DataModel2)' has some invalid arguments.
答案 0 :(得分:1)
由于类型不匹配,您需要将DataModel1
转换为DataModel2
。
dataModel2List.Add(db.DataModel1.Select(row => new DataModel2()
{
Id = row.Id,
Name = row.Name
}).FirstOrDefault());
答案 1 :(得分:1)
您不能直接将DataModel1
分配给DataModel2
的集合。
您需要像以下那样修改选择查询:
dataModel2List.Add(db.DataModel1.Select(row => new DataModel2
{
Id = row.Id,
Name = row.Name,
Phone = "???"
}).FirstOrDefault());
答案 2 :(得分:1)
另一种解决方案是在datamodel2中定义构造函数,以初始化datamodel1中的值
public class DataModel2
{
Public DataModel2()
{
}
Public DataModel2(DataModel1 model1)
{
Id= model1.Id;
Name = model1.Name;
}
public string Id { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
}
现在是添加部分
List<DataModel2> dataModel2List = new List<DataModel2>();
dataModel2List.Add(new DataModel2(db.DataModel1.Select(row => row).FirstOrDefault()));
您可以删除默认构造函数或使用它的应用程序可以使用它。
希望这会有所帮助