Най-бързият начин за присвояване на свойства на клас от datarow C#

В момента работя в голям проект, така че има много данни и таблици.

За най-добри практики създавам клас за всяка таблица и обект

Изглежда така:

public class Employee
{
    private String Name;
    public String Name
    {
        get
        {
            return Name;
        }
        set
        {
            Name = value;
        }
    }

    public Employee(int EmployeeID) 
    {
        /*
         GET DATA ROW AND ASSIGN IT TO EVERY PROPERTIE
         * 
         * Name = row("name")
         * AND DO THIS FOR EVERY PROPERTIE!
         * 
         */
    }
}

Това, което се случва тук е, че трябва да присвоя всяко свойство от заявка в конструктора на класа.

Но представете си таблица с около 50+ колони, трябва да направя това 50+ пъти и това отнема много време.

Има начин за автоматизиране на това автоматизиране на създаването на 50+ свойства и присвояването на 50+ свойства в класа, без да отнема много време.

Просто искам да намеря начин да създам клас, автоматизиращ присвояването на свойства от ред с данни, вместо да записвам всички низове на колони в свойствата. Нещо като Entityt Framework, но направено от мен.

Поздрави и благодарности


person NathanWay    schedule 06.09.2015    source източник
comment
Този код дори няма да се компилира, тъй като декларирате два члена с едно и също име. (Изглежда, че просто трябва да използвате автоматични свойства.) Имате ли доказателство, че задаването на тези свойства всъщност е тясно място? Ако приемем, че те идват от база данни, достъпът до базата данни ще значително надхвърли времето, необходимо за тривиални задачи.   -  person Jon Skeet    schedule 06.09.2015
comment
Написах фрагмента бързо хехе. Просто искам да намеря начин да създам клас, автоматизиращ присвояването на свойствата от ред с данни, вместо да записвам всички низове на колони в свойствата. Нещо като Entityt Framework, но направено от мен...   -  person NathanWay    schedule 06.09.2015
comment
Значи искате да кажете, че проблемът не е производителността по време на изпълнение, а досадата от писането на кода? Ако е така, моля, изяснете публикацията си - създава впечатлението, че става дума за изпълнение в момента.   -  person Jon Skeet    schedule 06.09.2015
comment
Благодаря Джон :) Ще го направя..   -  person NathanWay    schedule 06.09.2015


Отговори (2)


Има купища примери онлайн за създаване на C# класове от dB таблици и съхранени процедури, проучете това и POCO, напр.:

Генериране на клас от таблица с база данни

http://www.codeproject.com/Articles/8397/C-Code-Generator-for-Stored-Procedures

Не сте първият, който се сблъсква с това, най-добре следващия път потърсете бързо в Google.

person Jeremy Thompson    schedule 06.09.2015

трябва да използвате по-добър първи подход за код на рамка на обект, той работи дори ако вашата база данни вече е създадена.

използвайте инструмент за генериране на модела на класа и създайте контекст като:

  public class MyContext : DbContext
  {
      public MyContext (){}
       public DbSet<MyModel> MyModel { get; set; }
  }
person Ariel Batista    schedule 06.04.2018