无法访问另一个类的属性

时间:2015-11-16 05:38:47

标签: c# properties reference

我有以下两个课程

 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")显示错误

1 个答案:

答案 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),因为您没有指定它。

相关问题