Най-добрият начин за представяне на поле в обект, който идва от и ID+Име от DB?

Имам този (опростен за целите на илюстрацията) обект, който представлява таблица с полета (id, тип, марка, модел, цена) от DB. За тип, марка и модел се съхраняват само идентификационните номера, които имат връзка с базата данни за типове, марки и модели. С няколко присъединявания, обектите зареждат данните и получават също свойствата на име за тях:

public class Car
{

    public int TypeId;
    public int BrandId;
    public int ModelId;
    public decimal Price;

    public string TypeName;
    public string BrandName;
    public string ModelName;

}

Това позволява структурата на обекта да бъде "мръсна" според мен. Кой е най-добрият начин да заредите това в по-структурирани обекти, като:

public class Car
{
    public Definitions.CarTypes Type;
    public Definitions.CarBrand Brand;
    public Definitions.CarModel Model;
    public decimal Price;
}

Загрижеността ми е как данните ще бъдат попълнени вътре в обекта, когато заявката се върне от базата данни. Използва ли се конструктор (thisCar.Brand = new CarBrand(reader["id"],reader["name"]); за всяко поле е добър начин да го направите?


person DaniH    schedule 21.03.2011    source източник


Отговори (1)


Само имайте предвид, че методите Read/Write(Ln) в D2009+ НЕ поддържат unicode.
person Bryan Thomas    schedule 21.03.2011
comment
Вярвам, че това решение ще се прилага само ако се има предвид генерирането на код, тъй като enum не може да бъде попълнено по време на изпълнение. Това също би направило невалидна възможността да има други полета вместо id/стойност, без да се прибягва до клас за поддръжка. - person DaniH; 22.03.2011