Linq к обновлению SQL, не работающему, используя шаблон Репозитория

Прежде всего, вы должны выполнить все эти задачи в фоновом потоке, и при разборе, если это возможно, используйте HashMap<Key,Value>, у него есть методы, подобные hashmap.get("key"), которые будут получать значения без использования цикла for, или вы также можете использовать arraylist из которого вы также можете получить значения без использования цикла for.

5
задан Community 23 May 2017 в 10:27
поделиться

3 ответа

В Вашем методе SaveOrder Вы всегда создаете новый объект ПОРЯДКА. Необходимо изменить это так, чтобы если порядок. IsNew является ложью, он получает существующий от DB и обновляет его вместо этого.

public void SaveOrder(Order order)
{
    ORDER dbOrder;
    if (order.IsNew)
    {
        dbOrder = new ORDER();
        dbOrder.O_ID = order.ID;
    }
    else
    {
        dbOrder = (from o in db.ORDERS where o.O_ID == order.ID select o).Single();
    }

    dbOrder.O_SomeField1 = order.SomeField1;
    dbOrder.O_SomeField2 = order.SomeField2;
    dbOrder.O_DateCreated = order.DateCreated;
    dbOrder.O_DateModified = order.DateModified;

    if (order.IsNew)
        db.ORDERs.InsertOnSubmit(dbOrder);

    db.SubmitChanges();
}
7
ответ дан 14 December 2019 в 01:20
поделиться

Я думаю, что у Вас есть проблема, что Ваш объект отсоединяется от Вашего контекста.

Необходимо попытаться присоединить объект назад к контексту, если Вы хотите обновить. Оборотная сторона LINQtoSQL - то, что для прикрепления Вам будет нужно исходное состояние объекта, когда это было отсоединено...

Другое решение состоит в том, чтобы повторно получить Ваш объект от контекста и скопировать все данные из Вашего объекта в параметре. Это сделает, пока у Вас не будет более сложных объектов.

1
ответ дан 14 December 2019 в 01:20
поделиться

Какой сказанный tvanfosson.

Я был бы, точно так же, как, чтобы добавить, что я использую логику, где, если идентификатор равняется значению по умолчанию (0 или Пустой при использовании гуидов), то я принимаю, это является новым. Иначе, если мне передали идентификатор в, затем я иду, получают существующий объект и обновляют его.

1
ответ дан 14 December 2019 в 01:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: