0

私たちは、GenericRepositoryパターンと組み合わせたUnitOfWorkパターンを使用して作業しています。

POCOは次のように構築されていますか?

public class Aclass: IEntity{
public int ID;
public virtual Bclass Bproperty;
public virtual Cclass Cproperty;
}

IEntityを使用

public interface IEntity{
int ID;
} 

一意のAオブジェクトを作成するときは、既存のBオブジェクトとCオブジェクトを参照します。.SaveChanges()Aが保存されると、BとCのコピーも保存されます。したがって、元のBとCのオブジェクトを参照する代わりに、AのBpropertyとCpropertyは新しいオブジェクトを参照します。

取り付けることで修正できますが、パターンを扱っているという事実を考えると、このネジは私たちの抽象化のレベルにあります。

誰かがこれをきれいな方法で修正する方法についての手がかりを持っていますか?

4

1 に答える 1

2

Unchanged以前のように既存のBおよびCオブジェクトをマークする必要がありますSaveChanges

context.Entry<BClass>(bclass).State = EntityState.Unchanged; 

また

context.ObjectStateManager.ChangeObjectState(AEntity.BClass, EntityState.Unchanged);

(使用しているコンテキストの種類によって異なります)

于 2012-11-30T15:28:03.410 に答える