0

ベースコントローラー(MVCプロジェクト)経由でユーザー設定にアクセスするには、ユーザー設定(アドレス、アクセス権など)をセッション/キャッシュに保存する必要があります。

User.Address想像できるようにセッションから到達しようとすると、次のように表示されます。

ObjectContext インスタンスは破棄されており、接続を必要とする操作には使用できなくなりました。

Address は User エンティティのナビゲーション プロパティです。

私はDTOを使いたくありません。

そのための回避策はありますか?

ありがとう。

4

2 に答える 2

1

私はGertに同意しますが、私はこのように書くことを好みます. (コンパイル時エラーチェック用)

public User GetUser(int userId)
{
    using (var db = new MyContext())
    {
        return db.Users.Include( p => p.Address).Single(u => u == userId);
    }
}
于 2013-02-06T15:13:39.993 に答える
0

データベースからユーザーを取得するときはInclude、アドレスが必要です。たとえば、次のようなもの (リポジトリまたはサービス内):

public User GetUser(int userId)
{
    using (var db = new MyContext())
    {
        return db.Users.Include("Address").Single(u => u == userId);
    }
}
于 2013-02-05T17:51:14.373 に答える