0

我需要帮助...

我有我手动创建的实体。

public class Project()
{
 public Project Data {get;set;}
 public string ProjectID { get; set; }
 public string AreaID { get; set; }
 public string Country { get; set; }
}

其中属性“Project”是 SQLmetal 创建的表。

我还用 SQLmetal 创建了我的类,希望有自己的实体。现在我尝试在构造函数中解析它们,例如:

public Project()
{
 ProjectID = Data.ProjectID;
 AreaID = Data.AreaID;
 Country = Data.Country;
}

但是当我使用

projects.Select(p => new Project { Data = p });

构造函数中的 Data 属性为空。

知道为什么吗?我将如何更好地解决这个问题?

4

1 回答 1

0

是的,因为初始化程序

var x = new Project { Data = p };

相当于

var x = new Project();
x.Data = p;

Data属性是在构造函数之后设置的。

您可以通过创建一个将 Data 作为参数的构造函数来解决它

public Project(Data data)
{
    this.Data = Data;
    ProjectID = Data.ProjectID;
    AreaID = Data.AreaID;
    Country = Data.Country;
}

并调用构造函数

projects.Select(p => new Project(p));
于 2012-11-05T09:40:02.130 回答