1

次のコードがあります。

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 からのプロキシを無効にするように私に依頼するのは論外です。有効になります。

私が欲しいのは、EF プロバイダー (MyEfDbContext) ではなくリフレクション プロバイダー (MyCustomContext) を使用している場合に、DataService が DynamicProxies を自分で処理する別の方法が存在するかどうかを知ることです...

エラー: 「型 'System.Data.Entity.DynamicProxies.MyEntity_BB149ED9827DD6216E888718F322BA36146418D1D834B040FD3A1B630341CD90' は複合型またはエンティティ型ではありません。」


次のような回避策があるかどうかを確認するために、いくつかのソースを既に確認しました。

どんな助けも本当に感謝しています!

4

0 に答える 0