2009-11-12 3 views
2

Я читаю и делаю RnD на RIA в качестве решения для нового проекта Silverlight.Получение единой сущности + услуги Ria

Я прочитал много документации и решил сделать небольшой макет системы с использованием .Net RIA Services.

Я хочу знать, как получить единую сущность из службы домена?

пример: Я хочу, чтобы лицо и заполнить форму:

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

} Say Я использую 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 (например, связывание данных в образцах), которые не являются полезными для одного объекта.

Мне нужна запись из одного человека, почему я хочу CollectionView, в котором я не могу получить доступ к свойствам напрямую.

Я также использовать:

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

Я очень близко к отказу от этой идеи РИА и просто идти с нормальной службы WCF, поскольку это более предсказуемым и управляемым на данном этапе.

ответ

-1

Предполагаю, что у вас есть класс, украшенный [EnableClientAccess]?

попробовать

<TextBlock Text="{Binding Path=Person.FirstName}" 
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(); 
} 
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); 
Смежные вопросы