1

EFPocoAdapterでEFを初めて試しています。1つのテーブルと2つのタイプがあり、それぞれが抽象基本クラスを継承する、比較的単純なTPHシナリオがあります。

私のモデルはEdmGenを介して検証され、PocoAdapter.csファイルとxxxEntities.csファイルも正常に生成されます。(実際、名前空間の問題がいくつかあり、次にどこに行くかがわかるまで、現在手作業で調整しています。)

簡単なテストを実行してデータを取得すると、次のようになります。

using (CINFulfillmentEntities context = new CINFulfillmentEntities())
{
  // use context
  var alerts = from p in context.Notifications.OfType<Alert>()
               select p;

  foreach (var alert in alerts)
  {
    Assert.IsNotNull(alert);
  }
}

I get an error in the PocoAdapter class, claiming that PocoEntity is null is the following method inside my base class's adapter:

public override void PopulatePocoEntity(bool enableProxies)
{
  base.PopulatePocoEntity(enableProxies);
  PocoEntity.Owner = _Owner.CreatePocoStructure();
  if (!(PocoEntity is IEntityProxy))
  {
  }
}

誰かからのアイデアはありますか?

したがって、もう少しデバッグした後、これはプロキシに関連していると思います。PocoAdapterBase内には、次のメソッドがあります。

protected PocoAdapterBase(TPocoClass pocoObject)
{
  _context = ThreadLocalContext.Current;
  bool allowProxies = false;
  if (_context != null)
  {
    allowProxies = _context.EnableChangeTrackingUsingProxies;
  }

  _pocoEntity = pocoObject ?? (TPocoClass)(allowProxies ? CreatePocoEntityProxy() : CreatePocoEntity());
   Init();
   InitCollections(allowProxies);
   RegisterAdapterInContext();
}

_pocoEntityを設定する行は、nullを返すCreatePocoEntityProxyを呼び出します。

私が見つけたより多くの情報。

4

0 に答える 0