まず、あなたの努力とご意見をいただき、ありがとうございました。 Stack Overflowは私のためのリソースです。私はこのフォーラムで私の大学で4年以上学んだことがあると思います。Silverlight、EF4、WCF RIA:nullのEntityKey値を持つオブジェクトはオブジェクトコンテキストにアタッチできません。
だから質問に。私はEFとWCF RIAを使ったSilverlight 4プロジェクトを持っています。 は私のページのいずれかで、私はリアのWebサービス呼び出しを介してテーブルの内容を取得し、ObservableCollection<T>
SILVERLIGHTコードで結果を格納:
//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.
私はデータオブジェクトをまったく変更しないで、クライアント側にIDとその他すべてが届くのは面白いです。
誰かが私が間違っていることの方向に私を指し示すことができるなら、私は大いに感謝します!
おかげ Martin, aka <bleepzter/>
添付したらオブジェクトを使って何をする予定ですか? – Bryant