2013-04-08 31 views
0

我有一段代碼是這樣的:繼承RIA服務形式「的DomainService」和「LinqToEntitiesDomainService <>」

namespace SilverlightApplication1.Web 
{ 
    [DataContractAttribute(IsReference = true)] 
    public class CustomEntity 
    { 
     [DataMemberAttribute()] 
     public Person MyPerson { get; set; } 

     [DataMemberAttribute()] 
     public Address MyAddress { get; set; } 

     [DataMemberAttribute()] 
     public List<Order> MyOreders { get; set; } 

    } 
} 

就是喜歡包裝在一些EF實體。問題是,當我寫一個服務來公開這一類Silverlight客戶端是這樣的:

[EnableClientAccess] 
public class DomainService2 : DomainServices 
{ 
    [Invoke] 
    public IEnumerable<CustomEntity> GetAllCustomEntities() 
    { 
     var ent = new AllDataBaseEntities(); 
     return ent.Persons.Select(x => new CustomEntity() 
     { 
      MyPerson= x, 
      MyAddrees= x.Address, 
      MyOrders=x.Orders.ToList() 

     }); 
    } 

如果我是從「的DomainService」 inherite,寫我的代碼像上面,所有暴露在客戶端我CustomEntity的屬性。否則,如果我寫我的服務是這樣的:

[EnableClientAccess()] 
public class DomainService1 : LinqToEntitiesDomainService<AllDataBaseEntities> { 

     public IEnumerable<CustomEntity> GetAllCustomEntities() 
     { 
      return ObjectContext.Persons.Select(x => new CustomEntity() 
      { 
       MyPerson= x, 
       MyAddrees= x.Address, 
       MyOrders=x.Orders.ToList() 

      }); 
     } 

} 

既不在客戶端可我CustomEntity的屬性。

我的問題是,如何在我的程序中使用這兩種方法,如果我在程序中使用「LinqToEntitiesDomainService <>」,則另一個無法正常工作。

並注意我不想使用[Association]屬性,因爲對於我想使用此方法,所有自定義實體屬性都沒有彼此之間的關係,我想調用一個服務而不是多個服務上加載客戶端的我的數據

感謝您的關注

回答

0

我不知道你的實現,但通常在我的Silverlight項目中,我遵循這種技術:Sharing Entities in Silverlight

+0

感謝您的回覆。但這不是我的問題。並在您提供的鏈接中僅討論主要數據類型。 – ali 2013-04-08 13:21:23