19

RIAサービス(VS2010Beta2)で最初のステップを実行すると、この問題が発生しました:EFモデル(POCOなし)、その上に汎用リポジトリー、およびRIAサービス(ASP.NET MVCアプリケーションでホストされている)を作成し、データを取得しようとしましたASP.NET MVCアプリケーション内から:うまく機能しました。次のステップ:Silverlightクライアント。RIAServiceへの参照を(そのコンテキストを介して)取得し、リポジトリのすべてのレコードを照会して、それらをSLアプリケーションにも取得しました(このコードサンプルを使用)。

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];
}

問題はこれです:レコード(この例では最初のレコード)のデータを編集しようとすると、次のエラーが発生します:タイプ「Culture」のこのEntitySetは「編集」操作をサポートしていません。

私は何か変なことをしたと思い、Cultureタイプのオブジェクトを作成し、それに値を割り当てようとしました。それはうまくいきました!

私は何が欠けていますか?EntitySetを宣言する必要がありますか?マークする必要がありますか?私は...何をする必要がありますか?

前もって感謝します

4

1 に答える 1

43

DomainServiceクラスでは、「編集」、「削除」などとして実装する(または少なくとも「プレースホルダーメソッド」をマークする)必要があることがわかります。

[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");
}

このようにして、OrganizationDomainContextEntityContainerクラスは、パラメーターEntitySetOperations.All(すべてのCUD操作が使用可能であることを意味します)を使用してEntitySetを作成します。

将来誰かに役立つことを願っています!

于 2010-03-15T11:00:00.530 に答える