2010-02-08 49 views
0

,我有以下簡單的數據模型:LINQ到SQL更新不能正常工作

Resource 
{ 
    ResourceId 
    ResourceName 
} 

UsageType 
{ 
    UsageTypeId 
    UsageTypeName 
} 

Usage 
{ 
    UsageId 
    UsageTypeId 
    ResourceTypeId 
    Percentage 
} 

當我更改Usage對象的UsageTypeIdResourceTypeIdPercentage值,然後發出SubmitChanges() LINQ到SQL僅發出SQL語句來更改Percentage值(通過SQL Profiler進行監視)。

如果我單步執行代碼,我會看到使用正確值爲UsageTypeIdResourceTypeId設置的屬性,但它們從未將其設置到數據庫。屬性保持正確的值,直到調用SubmitChanges()

我如下更改:

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

什麼是真的很煩人的是,如果我調用該方法從測試夾具是否能夠正常工作並更新數據庫,而是從其他地方只是沒有調用時外鍵列被更新。

詹姆斯:-)

回答

0

所有檢查首先,如果你使用的是UsageID在where子句中得到適當的使用。如果

接着檢查,因爲只有在DBML讀那些屬性(的ResourceID和UsageTypeID)製成。

希望這會有所幫助。

感謝, 拉賈

+0

只讀設置爲false,而其他屬性會被更新。當您逐步完成代碼時,ResourceID和TypeID的屬性將被設置並執行相關的設計器代碼。 – m0gb0y74 2010-02-09 08:17:34

+0

看看這個鏈接: http://www.codeproject.com/Messages/2918828/LINQ-to-SQL-bug-when-updating-foreign-key-fields.aspx 希望這會有所幫助。 – Raja 2010-02-09 12:31:06