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を呼び出します。
私が見つけたより多くの情報。