我有以下两个课程
public class Properties1
{
[Key]
public int ID { get; set; }
public int Name{ get; set; }
public virtual Properties2 Pro { get; set; }
}
public class Properties2
{
[Key]
public int ID { get; set; }
public int FName{ get; set; }
}
我正在尝试从数据集中获取数据并将其转换为Properties1列表,并尝试访问类Properties1内的类Properties2的FName属性,如下所示
List<Properties1> Properties1List = new List<Properties1>();
Properties1List = ds.Tables[0].AsEnumerable().Select(dataRow => new Properties1
{
ID = dataRow.Field<int>("id"),
Name= dataRow.Field<string>("Name"),
Pro.FName= dataRow.Field<string>("FName")
}).ToList();
问题是我无法访问上面代码
中的Pro.FName属性 Pro.FName= dataRow.Field<string>("FName")
显示错误
答案 0 :(得分:3)
您不能以这种方式分配价值
您需要使用对象初始值设定项创建Properties2
的实例:
Properties1List = ds.Tables[0].AsEnumerable().Select(dataRow => new Properties1
{
ID = dataRow.Field<int>("id"),
Name = dataRow.Field<string>("Name"),
Pro = new Properties2 {
FName = dataRow.Field<string>("FName")
}
}).ToList();
请注意,ID
的{{1}}将是默认值(0),因为您没有指定它。