将模型添加到另一个模型列表

时间:2019-07-09 04:43:17

标签: c#

型号:

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.

3 个答案:

答案 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()));

您可以删除默认构造函数或使用它的应用程序可以使用它。

希望这会有所帮助