1

次のようなリポジトリがあります。

public class Repository<TEntity> : IRepository<TEntity> where TEntity : class, IEntity
{
    protected readonly IContext _db;

    public Repository(IContext context)
    {
        _db = context;
    }

   ...
}

このクラスのメソッド内で、次のようなインクルードを含むステートメントを記述できます。

var regionalAdmins = _db.Users.Include("Areas");

そこで、そのリポジトリを継承するリポジトリを作成しました。

public class AreaRepository : Repository<Area>
{
    public AreaRepository(IContext context) : base (context)
    {
    }

    public new IEnumerable<Area> GetAreas()
    {
        return _db.Users.Include("Areas");
    }
}

このレベルでは、エラーが発生します:

System.Data.Entity.IDbSet' には 'Include' の定義が含まれておらず、タイプ 'System.Data.Entity.IDbSet' の最初の引数を受け入れる拡張メソッド 'Include' が見つかりませんでした

なぜこれが起こるのでしょうか?私は親から来ているのと同じコンテキストを持っています。

4

1 に答える 1

4

Includeで宣言されている拡張メソッドSystem.Data.Entity.DbExtensionsです。名前空間のusing句が欠落している可能性があります。System.Data.Entity

于 2012-04-03T21:56:47.557 に答える