2016-09-15 100 views
0

我無法從adc獲取數據以更新到數據庫。我正在使用LINQ2SQL DBML。 我從CAPcontext.Log沒有得到任何sql輸出,並且這兩個表都有主ID 我覺得這是LINQ查詢中的連接問題,但無法在網上找到任何有關它的問題。有人能指出我做錯了什麼嗎?LINQ SubmitChanges with join does not work

CAP_MDF_dataContextDataContext CAPcontext = new CAP_MDF_dataContextDataContext(); 

public bool LoadCAPadultdaycare() 
    { 
     CAPcontext.Log = Console.Out; 
     var adc = (from v in CAPcontext.AdultDayCares 
        join s in CAPcontext.States on v.state equals s.Name 
       select new CAPadultdaycare { 
        Avg = v.Avg, 
        City = v.city, 
        High = v.High, 
        Low = v.Low, 
        StateFullName = v.state, 
        StateAbbr = s.Code      
       }).ToList(); 

    foreach (var item in adc) 
     { item.City = "some city"; 
      // updating more fields but omitted here 
     } 

CAPcontext.SubmitChanges(); 
return true; 
} 

我CAPadultdaycare類是...

public class CAPadultdaycare 
{ 
    public decimal? High { get; set; } 
    public decimal? Low { get; set; } 
    public decimal? Avg { get; set; } 
    public string Zip { get; set; } 
    public string City { get; set; } 
    public string StateAbbr { get; set; } 
    public string StateFullName { get; set; } 
} 

回答

0

你正在創建 CAPadultdaycare對象,它們沒有連接到您的數據上下文,因此沒有提交。

下可以工作

var adc = (from v in CAPcontext.AdultDayCares 
       join s in CAPcontext.States on v.state equals s.Name 
      select v).ToList(); 

foreach (var item in adc) 
    { item.City = "some city"; 
     // updating more fields but omitted here 
    } 

CAPcontext.SubmitChanges(); 

但是這意味着您從數據庫中提取的所有列。