まず第一に、皆様のご尽力とご意見に感謝したいと思います。Stack Overflow は私にとって頼りになるリソースでした。大学での 4 年間よりも、このフォーラムで多くのことを学べたと感じています。
それで質問に。EF と WCF RIA を使用する Silverlight 4 プロジェクトがあります。私のページの 1 つで、Ria Web サービス呼び出しを介してテーブルの内容を取得し、結果をObservableCollection<T>
シルバーライト コード:
//class variables;
public ObservableCollection<Data> DataSource { get; set; } //Data entity
public ApplicationDomainContext Context { get; set; } //Ria Service
...
EntityQuery<Data> query = this.Context.GetDatasQuery();
this.Context.Load(query, loadedCallBack =>
{
if( loadedCallBack.HasError )
{
loadedCallBack.MarkErrorAsHandled();
MessageBox.Show("Unable to retrieve the desired data...");
return;
}
this.DataSource = new ObservableCollection<Data>(loadedCallback.Entities);
}
...
private void CreateUserAction()
{
string userName = WebContext.Current.User.Name;
this.Context.CreateUserAction(userName, this.DataSource, callBack =>
{
if(callBack.HasError)
{
callBack.MarkErrorAsHandled();
MessageBox.Show("Error creating user action");
return;
}
}
}
サービスコード:
public partial class ApplicationDomainService : LinqToEntitiesDomainService<ApplicationDomainModel>
{
[Invoke]
public void CreateUserAction(string userName, IEnumerable<Data> dataItems)
{
foreach(Data dataItem in dataItems)
{
if( dataItem.EntityState == EntityState.Detached )
{
this.ObjectContext.Attach(dataItem); //ERROR???
}
}
}
}
そのため、コードは の内部で実行されif( dataItem.EntityState == EntityState.Detached)
、オブジェクトをアタッチしようとするとエラーが発生します。
An object with a null EntityKey value cannot be attached to an object context.
面白いのは、Data オブジェクトをまったく変更していないことです。これらのオブジェクトは、クライアント側で Id とその他すべてと共に到着します。
誰かが私が間違っている方向に私を向けることができれば、私はそれを大いに感謝します!!!
ありがとう
Martin, aka <bleepzter/>