我有这样的代码:
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<>”,那么另一种方法不能正常工作。
请注意,我不想要也不能使用 [Association] 属性,因为对于我想要使用此方法的内容,所有自定义实体属性彼此之间没有关系,我想调用一个服务而不是多个在客户端加载我的数据的服务
感谢您的关注