我有以下简单的数据模型:
Resource
{
ResourceId
ResourceName
}
UsageType
{
UsageTypeId
UsageTypeName
}
Usage
{
UsageId
UsageTypeId
ResourceTypeId
Percentage
}
当我更改UsageTypeId
对象上的ResourceTypeId
,Percentage
和Usage
值,然后发出SubmitChanges()
LINQ-to-SQL时,只发出一个SQL用于更改Percentage
值的语句(通过SQL事件探查器监视)。
如果我单步执行代码,我会看到为UsageTypeId
和ResourceTypeId
设置的属性具有正确的值,但它们从未进入数据库。在调用SubmitChanges()
之前,属性一直保持正确的值。
我正在进行如下更改:
Usage usage = {get the Usage object from the datacontext};
usage.ResourceId = newValue1;
usage.UsageTypeId = newValue2;
usage.Percentage = newValue3;
真正令人讨厌的是,如果我从测试夹具调用该方法它可以正常工作并更新数据库,但是当从其他任何地方调用时,只更新无外键列。
詹姆斯: - )
答案 0 :(得分:0)
首先检查您是否在where子句中使用UsageID来获取适当的用法。
接下来检查这些属性(ResourceID和UsageTypeID)是否在DBML中是只读的。
希望这有帮助。
谢谢, 拉加