Linq-to-SQL Перемещение объекта DataObject из одного класса данных в другой с сохранением структуры. Как? - PullRequest
0 голосов
/ 04 января 2012

проблема встречалась у меня не раз.

Я использую Linq DataClass в DataContext.После того, как загрузчик прошел через это, ему иногда нужно было переместить объект в другой класс данных с такой же структурой.

Так, например, Products и ProductsHistory, каждый раз после изменения в Products, фактический Product помещается вProductsHistory.

Как я могу упростить это действие без написания такой функции преобразования:

private static ProductHistory convert(Product p)
    {
        ProductHistory ph = new ProductHistory();
        ph.Attr1 = p.Attr1;
        ph.Attr2 = p.Attr2;
        //...and hundreds like this on...
        return ph;
    }

Я не хочу выполнять SQL-запрос, поддерживаемый DataContexts.

Любой намек был бы хорош,

заранее спасибо,

Гарри

Ответы [ 2 ]

1 голос
/ 04 января 2012

Отражение будет единственным способом сделать это автоматически

Посредством размышления вам придется изучить все свойства исходного объекта. Найти соответствующее свойство целевого объекта. Затем скопируйте значения

//pseudo-code 
//something like this 

TargetInstance target = new TargetInstance();

foreach(Property sourceProperty in sourceinstance)
{
    if(target contains sourceProperty)
    {
        target[SourceProperty] = sourceInstance[SourceProperty];
    }    
}

Взгляните на этот вопрос он похож на ваш сценарий

0 голосов
/ 04 января 2012

Я бы подумал об использовании AutoMapper для такого рода вещей ...

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