DI には EF4.x、Code First、Castle Windsor を使用しています。私の問題: 新しく挿入されたエンティティを取得するときに、特定の仮想プロパティが null に戻ってきます。私はこれに慣れていないので、すべてがどのように機能するかについての私の無知を許してください。非常に単純な例は次のようなものです。
public class Address
{
public int AddressID { get; set; }
public string Street { get; set; }
public int ProvinceID { get; set; }
public virtual Province { get; set; }
etc....
}
public class Province
{
public int ProvinceID { get; set; }
public string Name { get; set; }
public string Abbreviation { get; set; }
public int DisplayOrder { get; set; }
etc...
}
そのため、SaveChanges() の後、データベースでレコードが正しく作成されていることを確認できますが、Address エンティティをロードする後続のページ リクエストでは、ProvinceID は正しく設定されていますが、仮想 Province は null です。再構築後、問題はありません。私は何を間違っていますか?ティア
より詳しい情報:
リポジトリと作業単位のパターンで DbContext を使用しています。一般的な CRUD メソッドをすべて含む抽象 EF RepositoryBase クラスがあります。一般的な GET メソッドの例を次に示します。
public T Get(params object[] keyValues)
{
return _dbSet.Find(keyValues);
}
public IQueryable<T> Get(Func<T, bool> filter)
{
return _dbSet.Where(filter).AsQueryable();
}
public IQueryable<T> GetAll()
{
return _dbSet.AsQueryable();
}
_dbSet は次のように設定されます。
_dbSet = ((DbContext)_context).Set<T>(); // _context is of IDbContext
たぶん、ここで何かが奇妙な問題を引き起こしているのでしょうか?