Обновление LINQ-to-SQL работает неправильно - PullRequest
0 голосов
/ 08 февраля 2010

У меня есть следующая простая модель данных:

Resource
{
   ResourceId
   ResourceName
}

UsageType
{
   UsageTypeId
   UsageTypeName
}

Usage
{
   UsageId
   UsageTypeId
   ResourceTypeId
   Percentage
}

Когда я изменяю значения UsageTypeId, ResourceTypeId и Percentage для объекта Usage, а затем запускаю SubmitChanges() LINQ-to-SQL выдает только оператор SQL для изменения значения Percentage (отслеживается через SQL Profiler).

Если я пошагово выполняю код, я вижу свойства, установленные для UsageTypeId и ResourceTypeId с правильными значениями, но они никогда не попадают в базу данных. Свойства содержат правильные значения вплоть до вызова SubmitChanges().

Я делаю изменения следующим образом:

Usage usage = {get the Usage object from the datacontext};
usage.ResourceId = newValue1;
usage.UsageTypeId = newValue2;
usage.Percentage = newValue3;

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

Джеймс: -)

1 Ответ

0 голосов
/ 08 февраля 2010

Прежде всего проверьте, используете ли вы UsageID в предложении where для получения соответствующего использования.

Затем проверьте, выполнены ли эти свойства (ResourceID и UsageTypeID) только для чтения в DBML.

Надеюсь, это поможет.

Спасибо, Радж

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