2

私のコードの最初のエンティティが直接コードからのものであるかどうかを知るための最良の方法は何ですか(new DataObject())

またはコンテキストから(Context.DataObjects.First())

私は自分のコンテキストが動的プロキシを使用することを妨げていないので、それを行うことができます:

    protected DataObject()
    {
        if (this.GetType().Namespace != "System.Data.Entity.DynamicProxies")
        {
            this.Id = IdGenerator.NextId<DataObject>();
        }
    }

しかし、GetType()は高価であるため、これは悪い解決策のように見えます。

ありがとうございました

4

1 に答える 1

1

エンティティのタイプを確認する場合は、を呼び出す必要がありますGetType。ところで。MSDNに直接推奨される解決策があります。DbContextからObjectContextインスタンスを取得するには、次を使用できます。

ObjectContext objectContext = ((IObjectContextAdapter)dbContext).ObjectContext;
于 2012-04-26T13:23:49.950 に答える