2016-09-15 6 views
0

Я не могу получить данные от adc для обновления до базы данных. Я использую LINQ2SQL dbml. Я не получаю sql-вывод из CAPcontext.Log, а обе таблицы имеют первичный идентификатор . Я чувствую, что это проблема с соединением в запросе LINQ, но не может найти что-либо в Интернете относительно этого. Может кто-нибудь указать, что я делаю неправильно?LINQ SubmitChanges with join не работает

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(); 

, но это означает, что вы тянете все столбцы из базы данных.