LINQ to Entities Обновление запроса - PullRequest
0 голосов
/ 31 августа 2010

Я пытаюсь сделать простое обновление, но я могу на всю жизнь понять, что я делаю неправильно.

У меня есть следующий код, который в настоящее время не работает - я не получаювсе пути кода возвращают значение.

public List<tblWeight> UpdateFeedback(string memberid, string locationid, int prikey, string feedback)
{

        MyEntities updatefeedback = new MyEntities();

        tblWeight newfeedback = (from q in updatefeedback.tblWeights
                                 where q.MemberId == memberid &&
                                       q.LocationId == locationid &&
                                       q.PriKey == prikey
                                 select q).SingleOrDefault();

        updatefeedback.tblWeights.AddObject(newfeedback);
        updatefeedback.SaveChanges();

}

По сути, я пытаюсь обновить столбец Feedback в tblWeight на основе предложений where.

Может кто-нибудь указать, где я иду не так...drastically !!

  • Извините - предыдущая попытка / улов была устаревшей.

Ответы [ 4 ]

2 голосов
/ 31 августа 2010

Прежде всего (по причинам, отличным от вашего вопроса), избавьтесь от блока:

       catch (Exception)
        {
            return null;
        }

Во-вторых, вы говорите, что возвращаете List<tblWeight>, но вы не делаете это нигде в функции. Вам нужно либо вернуть NULL внутри блока try в конце, либо, желательно, правильно заполненную структуру List<tblWeight>.

Либо верните объект, который вы собираетесь вернуть, либо измените функцию, чтобы она возвращала пустоту и ничего не возвращала.

Что касается обработчика исключений, пожалуйста, ознакомьтесь с рекомендациями по обработке исключений. Я не буду повторять это в этом посте, так как это было сказано много раз раньше. Я обещаю вам, что вы будете писать код быстрее, писать меньше кода и писать лучший код, если вы это сделаете.

1 голос
/ 31 августа 2010

Ваш метод UpdateFeedback определен так, чтобы возвращать List<tblWeight>, но, когда все работает успешно (т.е. не генерируется исключение), ничего не возвращается, что является ошибкой компиляции в C #.

Я рекомендую вамизбавиться от блока try / catch, так как перехватывать, а не отбрасывать исключения - очень плохая практика.Если что-то идет не так, вы должны получить исключение, чтобы сообщить вам, почему.

Затем вам нужно либо вернуть что-то, что имеет смысл (например, return updatefeedback.tblWeights), либо изменить метод на возвращаемое значение void (т.е. ничего не вернуть).

0 голосов
/ 31 августа 2010

В сообщении об ошибке указывается, что не все кодовые пути возвращают значение, которое является истинным.

Вы возвращаете значение (ноль), только если вы перехватили (и проглотили) исключение.Обычный (надеюсь) путь ничего не возвращает.

Вы должны либо вернуть что-то после SaveChanges, либо изменить возвращаемое значение на void

0 голосов
/ 31 августа 2010

В блоке try нет возврата или это не то, что вы спрашиваете?

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