我有一段这样的代码:
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”继承并编写如上所述的代码,那么我的所有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&lt;&gt;”,那么另一种方法无效。
请注意我不想要,我不能使用[Association]属性,因为对于我想要使用此方法的内容,所有自定义实体属性彼此之间没有关系,我想调用一个服务而不是在客户端加载我的数据的多个服务
感谢您的关注