2

新しい Silverlight プロジェクトの解決策として、RIA の RnD を読み、実行しています。

多くのドキュメントを読み、.Net RIA Services を使用してシステムの小さなモックアップを作成することにしました。

ドメイン サービスから単一のエンティティを取得する方法を知りたいですか?

例: 人を取得してフォームに入力したい:

 public Person GetSinglePerson()
        {
            return new Person { ID = 4, FirstName = "Cyanide", LastName = "Happiness", Status=3 };

DomainDataSource を使用するとします。

<riaControls:DomainDataSource x:Name="source2" QueryName="GetSinglePersonQuery" AutoLoad="True">
                    <riaControls:DomainDataSource.DomainContext>
                        <web:DataContext/>
                    </riaControls:DomainDataSource.DomainContext>
                </riaControls:DomainDataSource>

これはEntityCollectionViewのみを返しますか? たとえば、フォームで Person クラスにあるプロパティにバインドするにはどうすればよいですか?

お気に入り:

<TextBox Text="{Binding FirstName, ElementName=source2}"/>

すべてが IEnumerable または CollectionViews (サンプルの DATA バインディングなど) として返されるように見えますが、これは単一のエンティティには役に立ちません。

プロパティに直接アクセスできない CollectionView が必要なのはなぜですか。

私も使用しています:

 LoadOperation<Person> oLoadOperation = oDataContext.Load(oDataContext.GetSinglePersonQuery());

私はこの RIA のアイデアをあきらめて、この段階ではより予測可能で管理しやすい通常の WCF サービスを使用することに非常に近づいています。

4

4 に答える 4

3
ctxt.Load(ctxt.GetEmployeeByNumberQuery("ABC123")).Completed += new System.EventHandler(EmployeeLoad_Completed);


void EmployeeLoad_Completed(object sender, System.EventArgs e)
{
    Employee myEmployee = (sender as LoadOperation<Employee>).Entities.FirstOrDefault();
}
于 2010-07-23T20:57:45.477 に答える
2

ねえ、これを見つけたのでチェックしてみてください。これがあなたのやりたいことだと思います

http://jeffhandley.com/archive/2009/11/10/domaindatasource-single-record.aspx

于 2009-11-12T23:48:43.993 に答える
1
        HumanResourceContext context = new HumanResourceContext();

        var addressquery = context.GetAddressesQuery();
        addressquery = addressquery.Where(a => a.AddressId == 1);

        context.Load(addressquery, (op) =>
            {
                Address address = op.Entities.FirstOrDefault();

                MessageBox.Show(address.Street1);
            }, null);
于 2010-11-10T18:37:42.310 に答える
-1

あなたのクラスは [EnableClientAccess] で装飾されていると思いますか?

試す

<TextBlock Text="{Binding Path=Person.FirstName}"
于 2009-11-12T13:03:43.000 に答える