WCF DataService和EntityFramework POCO代理

时间:2013-04-11 23:22:17

标签: wcf entity-framework serialization wcf-data-services wcf-ria-services

我有以下代码:

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禁用延迟加载和代理,它将被启用。

如果我使用Reflection Provider(MyCustomContext)而不是EF Provider(MyEfDbContext),我想知道是否存在使DataService自己处理DynamicProxies的另一种方法......

错误:“类型'System.Data.Entity.DynamicProxies.MyEntity_BB149ED9827DD6216E888718F322BA36146418D1D834B040FD3A1B630341CD90'不是复杂类型或实体类型。”


我已经检查了一些消息来源,知道是否有解决方法,如:

我真的很赞赏任何帮助!

0 个答案:

没有答案