linq2sql лучший способ обновить POCO, имеющий много столбцов - PullRequest
0 голосов
/ 13 сентября 2011

Я пытаюсь обновить POCO, используя lin2sql. Я также могу использовать структуру лица. Для обновления объектов я следую следующей процедуре.

//GridView Control gives me some updated POCOS As an Example: Person updated;

 function UpdatePerson(Person myUpdatedPersonfromUI)
  {
   using (Entity con = new Entity() ) {
     var recordFromdB = from obj in con.Person where obj.PK = myUpdatedPersonfromUI.PK 
            select obj;
      Person personOnDB = recordFromdB.Single();


        // now for each column I update personOnDB

            personOnDB.Property1 =   myUpdatedPersonfromUI.Property1 ;    
            personOnDB.Property2 =   myUpdatedPersonfromUI.Property2 ;  
            personOnDB.Property3 =   myUpdatedPersonfromUI.Property3 ;  
            personOnDB.Property4 =   myUpdatedPersonfromUI.Property4 ;  
       // continue updating fields              ...
                  ..
                  .                             
            personOnDB.Property124 =   myUpdatedPersonfromUI.Property124 ;  


             con.SaveChanges();



    }
  }

Нужно ли обновлять каждое свойство вручную. Пожалуйста, помогите.

Ответы [ 2 ]

3 голосов
/ 13 сентября 2011

Вы можете использовать инструмент сопоставления объектов, такой как AutoMapper , который в значительной степени сделает всю работу за вас - в этом простом случае (имена свойств совпадают между источником и целью) это будет однострочник для сопоставленияэто.

0 голосов
/ 13 сентября 2011

Учитывая, что вы используете один и тот же тип объекта в пользовательском интерфейсе, почему бы просто не подключить его к DAL и напрямую вызвать обновление?

Эта ссылка содержит подробные сведения о том, как это сделать..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...