我有以下代码:
public class MyDataService : DataService< MyCustomContext >
{
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
}
}
public class MyCustomContext
{
public IQueryable<MyEntity> Entities
{
get
{
MyEfDbContext efDbContext = new MyEfDbContext();
efDbContext.Configuration.LazyLoadingEnabled = true;
efDbContext.Configuration.ProxyCreationEnabled = true;
var entities = efDbContext.MyEntities;
//*** lot of other codes filtering and checking the entities here
return entities;
}
}
}
问题是关于 EF 生成的 DynamicProxies ... WCF 无法处理发现这些代理,我想在“ * ”中使用延迟加载。毫无疑问,请我从 dbcontext 禁用延迟加载和代理,它将被启用。
如果我使用反射提供程序(MyCustomContext)而不是EF提供程序(MyEfDbContext),我想知道是否存在另一种让DataService自己处理DynamicProxies的方法......
错误:“'System.Data.Entity.DynamicProxies.MyEntity_BB149ED9827DD6216E888718F322BA36146418D1D834B040FD3A1B630341CD90'类型不是复杂类型或实体类型。”
我已经检查了一些来源,以了解是否有解决方法,例如:
我真的很感激任何帮助!