2

我正在阅读并在 RIA 上做一些 RnD,作为新 Silverlight 项目的解决方案。

我已经阅读了很多文档,并决定使用 .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 回答