时间:2016-03-02 00:20:59

标签: c# asp.net data-access-layer dto bll

一个关于DTO的简单问题,我有一个DTO类汽车,以及其中一些汽车模型的子类。

    public class Cars
{
    public Ferrari FerrariModel { get; set; }
    public Porshe PorsheModel {get; set; }
    public Mustang MustangModel { get; set; }
}
    public class Ferrari
{  
    public string collor{ get; set; }
    public int year{ get; set; }
    public double price{ get; set; }
}

和Porshe和Mustang完全一样的法拉利。问题是我现在不知道该怎么办。我尝试类似的东西

Cars cars = new Cars();
FerrariModel fm = new FerrariModel();
cars.FerrariModel.collor = txtCollor.Text;

它不起作用,因为我在cars.FerrariModel.collor - >中得到了跟随错误。 "对象引用未设置段落嗡嗡声对象的实例。嗡嗡声对象声明"。 我必须承认我甚至都不知道它是可能的"或者如果我发明了编程",那么任何帮助都会很有用。

  1. 为什么只使用一个班级?因为需要在参数中传递单个DTO:save(Cars car);更新(汽车车)
  2. 使用第二个separeted课程会迫使我超负荷#34;方法:保存(汽车车);保存(法拉利法拉利);
  3. 如果我使用单个课程(没有法拉利,Porshe和Mustang)程序可以正常工作,但我的InteliSense中有很多变量,超过50个。
  4. 谢谢。

1 个答案:

答案 0 :(得分:1)

您需要将fm个实例分配到Cars.FerarriModel媒体资源。

Cars cars = new Cars();
FerrariModel fm = new FerrariModel();
cars.FerrariModel = fm;
cars.FerrariModel.collor = txtCollor.Text;

甚至只是:

Cars cars = new Cars();
cars.FerrariModel = new FerrariModel() { collor = txtCollor.Text };