0

エンティティの 1 つを IEntityWithRelationsships にキャストできません。私はエンティティからコンテキストを取得するためのメソッドを多く使用していますが、これまでのところ正常に機能しています。エンティティはモデルで定義された1つ以上の関係を持つだけでよいと思いました。それだけです。

これが私のコードのほんの一部です:

public ActionResult Update(StavkaDokumentaVM stavka)
{
if (ModelState.IsValid)
{
    StavkaDokumenta st = AutoMapper.Mapper.Map<StavkaDokumenta>(stavka);

    db.StavkeDokumenta.Attach(st);
    db.ObjectStateManager.ChangeObjectState(st, EntityState.Modified);                
    db.SaveChanges();

    IEntityWithRelationships test = st as IEntityWithRelationships; // I get NULL here

    st = db.StavkeDokumenta.Include("RelationEnd1").Include("RelationEnd2")
        .Where(sd => sd.IdStavkaDokumenta == st.IdStavkaDokumenta).Single();

    test = st as IEntityWithRelationships; // Also get NULL
}
}

問題のエンティティには 10 個ほどの関係が定義されているため、問題にはなりません。

ここで何が起こっているのですか?私は本当に困惑しています。

アップデート:

これは私がやったことです:

db.LoadProperty(st, "DokumentStavke");
IEntityWithRelationships test = st.DokumentStavke as IEntityWithRelationships; // I get NON NULL value;
test = st as IEntityWithRelationships; // I still get NULL.

これが本来あるべき姿ですか?

4

1 に答える 1

1

POCO エンティティは実装していませんIEntityWithRelationships。あなたがしていることは、動的プロキシに依存するハックです。EF によって生成された動的プロキシはそのインターフェイスを実装しますが、動的プロキシを正しく作成するには、すべての前提条件に合格する必要があります

于 2012-09-11T08:17:09.647 に答える