Как написать это довольно? - PullRequest
5 голосов
/ 04 декабря 2010

Привет, я новичок в C # и хочу спросить, как написать этот код более prety

public void Update(Product pr)
    {
        Product prod = GeProductById(pr.ProductID);
        prod.Name       = pr.Name;
        prod.Count      = pr.Count;
        prod.InputPrice = pr.InputPrice;
        prod.InputDate  = pr.InputDate;
        prod.OutPrice   = pr.OutPrice;
        prod.InputPriceByCurrency   = pr.InputPriceByCurrency;
        prod.InputPriceCurrency     = pr.InputPriceCurrency;
        prod.ComeOwner  = pr.ComeOwner;
        prod.GroupID    = pr.GroupID;
        prod.Discount   = pr.Discount;

        _context.SubmitChanges();
    }

Все это просто скопировать все свойства, кроме ID. Могу ли я написать это в ближайшее время? Спасибо и извините за мой плохой английский

Ответы [ 2 ]

4 голосов
/ 04 декабря 2010

Как сказал ранее Дэвид, вы, вероятно, неправильно используете ORM.

Может быть, эта статья, объясняющая обновления в Linq-To-Sql , может помочь

По сути, вы можете вызвать метод Attach, чтобы присоединить внешнюю сущность к текущему контексту, а SubmitChanges позже отключит оптимистический параллелизм

4 голосов
/ 04 декабря 2010

Кажется, что-то еще есть.Почему вы не можете сохранить pr в хранилище данных как есть?Похоже, что вы, возможно, используете ORM неэффективно, хотя для этого может быть веская причина, которую мы просто не можем увидеть из области действия этого кода.что-то вроде automapper в подобных случаях.Хотя, если честно, я думаю, что после небольшого переосмысления того, как вы используете ORM, здесь это не нужнопо своей сути неправильно с длинной и скучной картографической функцией, подобной этой.Даже если это 20 свойств или 200 свойств.Если он написан только один раз, его легко читать и понимать, что он делает, делает то, что делает хорошо, и т. Д., То это не плохой кусок кода.Код не всегда хорош, и не должен быть.Легко поддаться искушению сделать что-то более умное, чтобы сделать код круче или интереснее, но умнее не всегда лучше, когда речь заходит о поддержке этого кода позже.

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