2010-03-15 8 views
19

İlk adımları RIA Hizmetleri'nde (VS2010Beta2) yapma ve bu sorunla karşılaştım: bir EF Modeli (POCO içermeyen), bunun üzerine bir genel depo ve bir RIA Hizmeti oluşturdu (ASP.NET MVC uygulamasında barındırılan) ve ASP.NET MVC uygulamasından veri almaya çalıştı: iyi çalıştı. Sonraki adım: Silverlight istemcisi. Deponun tüm kayıtlar için sorgulanan (kendi bağlamı aracılığıyla) RIAService bir başvuru, var ve (bu kod örneği kullanarak) yanı SL uygulama içine aldı:RIA Hizmetleri EntitySet 'Düzenle' işlemini desteklemiyor

private ObservableCollection<Culture> _cultures = new ObservableCollection<Culture>(); 
public ObservableCollection<Culture> cultures 
{ 
    get { return _cultures; } 
    set 
    { 
    _cultures = value; 
    RaisePropertyChanged("cultures"); 
    } 
} 

....

//Get cultures    
EntityQuery<Culture> queryCultures = from cu in dsCtxt.GetAllCulturesQuery() 
              select cu; 
loCultures = dsCtxt.Load(queryCultures); 
loCultures.Completed += new EventHandler(lo_Completed); 

....

void loAnyCulture_Completed(object sender, EventArgs e) 
{ 
    ObservableCollection<Culture> temp= 
    new ObservableCollection<Culture>loAnyCulture.Entities); 
       AnyCulture = temp[0]; 
} 

sorun şudur: i bu hatayı alıyorum (bu örnekte birinci kaydı) bir kaydın bazı verileri düzenlemeye çalıştığınızda her zaman: Bu EntitySet 'Kültür' türünün 'Düzenle' işlemini desteklemiyor.

Ben garip bir şey yaptım ve tip Kültür bir nesne oluşturmak ve buna bir değer atamayı denedi düşündüm: iyi çalıştı!

Neyi eksik? EntitySet bildirmek zorunda mıyım? İşaretlemek zorunda mıyım? Ne yapmalıyım? peşin

Teşekkür

cevap

42

Bu örneğin ... DomainService sınıf bir uygulamaya sahiptir yılında, "Düzenle" olarak (veya en azından "tutucu yöntemleri" işaretlemek için) "Sil" çıkıyor

[Delete] 
public void DeleteCulture(Culture currentCulture) 
{ 
    throw new NotImplementedException("UpdateCulture not Implemented yet"); 
} 
[Insert] 
public void InsertCulture(Culture newCulture) 
{ 
    throw new NotImplementedException("InsertCulture not Implemented yet"); 
} 

Bu şekilde OrganizationDomainContextEntityContainer sınıfı, EntitySetOperations.All parametresiyle bir EntitySet oluşturur (tüm CUD işlemlerinin kullanılabilir olduğu anlamına gelir).

gelecekte birisi için yararlıdır Umut! Benim için

+0

çok yararlı :) –

+0

@Greco i yardımcı olabilir sevindim! –

+0

@SavvasSopiadis - güzel iş, teşekkürler! – Rob