LINQ-to-SQL更新无法正常工作

时间:2010-02-08 17:11:22

标签: linq-to-sql

我有以下简单的数据模型:

Resource
{
   ResourceId
   ResourceName
}

UsageType
{
   UsageTypeId
   UsageTypeName
}

Usage
{
   UsageId
   UsageTypeId
   ResourceTypeId
   Percentage
}

当我更改UsageTypeId对象上的ResourceTypeIdPercentageUsage值,然后发出SubmitChanges() LINQ-to-SQL时,只发出一个SQL用于更改Percentage值的语句(通过SQL事件探查器监视)。

如果我单步执行代码,我会看到为UsageTypeIdResourceTypeId设置的属性具有正确的值,但它们从未进入数据库。在调用SubmitChanges()之前,属性一直保持正确的值。

我正在进行如下更改:

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

真正令人讨厌的是,如果我从测试夹具调用该方法它可以正常工作并更新数据库,但是当从其他任何地方调用时,只更新无外键列。

詹姆斯: - )

1 个答案:

答案 0 :(得分:0)

首先检查您是否在where子句中使用UsageID来获取适当的用法。

接下来检查这些属性(ResourceID和UsageTypeID)是否在DBML中是只读的。

希望这有帮助。

谢谢, 拉加