2011-12-21 10 views
0

Silverlight RIAサービスには初めてのもので、EntityFrameworkでRIAサービスを利用する基本的な作業プロトタイプがあります。実際のプロジェクトに移りましたので、非EntityFrameworkオブジェクトをどのようにutlizeするのかと思っていますが、System.Windows.Controls.DomainServices.DomainDataSourceなどのRIAコントロールを使用してページングできるようにしています。私のワーキングプロトタイプ、私が持っている:Silverlight 4 w/RIA Services

[EnableClientAccess()] 
public class RequestService : LinqToEntitiesDomainService<MyEntities> 
{ 
    public IQueryable<RequestData> GetRequests() 
    { 
     ... LINQ query removed ... 
    } 
} 

私はMyRequestDataは、私が作成したカスタムのpublicクラスです(と、エンティティデータを変換)のIQueryable <MyRequestData>へのIQueryable <RequestData>を変更し、アプリケーションを再構築すると、クライアントSilverlightアプリケーションはクエリ(ビルドエラー)を認識しません。

私の質問は、これらのカスタムオブジェクトをEntityFrameworkオブジェクトと同様の方法でどのように活用して、ページネーションなどを適用できるのでしょうか。あなたはPOCOクラスを作成し、このようにそのプロパティのいずれかにキー属性を割り当てることができます

答えて

0

...

public class MyClass 
{ 
    [Key] 
    public string Name { get; set; } 
    public int Age { get; set; } 
} 

次に、あなたのようなPOCOクラスで取得する方法が含まれているのDomainServiceクラスを作成することができますthis ...

[EnableClientAccess()] 
public class DomainService1 : DomainService 
{ 
    public List<MyClass> GetData() 
    { 
     return new List<MyClass>(){new MyClass{Name = "Henry", Age = 33}}; 
    } 
} 

このメソッドは、1つの要素を含むMyClassのリストを返します。しかし、ほとんど何かを返すことができます。

そして、クライアント側で使用すると、イベントコールバックでは...このよう

public MainPage() 
     { 
      InitializeComponent(); 
      DomainService1 ds1 = new DomainService1(); 
      var x = ds1.Load(ds1.GetDataQuery()); 
      x.Completed += new EventHandler(x_Completed); 
     } 
     void x_Completed(object sender, EventArgs e) 
     { 
      // process the results here 
     } 

をドメインサービスを呼び出すことができ、あなたはLoadOperationに、送信者の引数をキャストし、あなたが望むデータを取得することができます...

「Key」属性の使用によるものです。そうすれば、すべてが機能します。

+0

これはまさに私が探していたものです。私がやったすべてのグーグルサーチでは、POCOオブジェクトについて何も見つけられませんでした。私はそれが主にEntityFramework、NHibernateなどのすべてのサイトに焦点を当てているからだと思います。 – guyaton

+0

私はそれが役に立ちましたことをうれしく思っています。私はSL RIAでも多くの質問を始めました。あなたが応答に満足していることを人々が知るように、回答をアップアップするようにしてください。 –

+0

私は15名の評判を持っていれば....これは私の2回目のstackoverflowへの投稿です。 – guyaton

関連する問題