public class GenericRepository<TEntity> where TEntity : class
{
internal DbContext context;
internal DbSet<TEntity> dbSet;
public GenericRepository(DbContext context)
{
this.context = context;
this.dbSet = context.Set<TEntity>();
}
我想创建由GenericRepository扩展的MemberRepository。
所以我试过这样,
public class MemberRepository<Member> : GenericRepository<Member> where Member : class
{
public MemberRepository(DbContext context) : base(context){}
public IQueryable<Member> GetMemberList(SearchOptions options)
{
IQueryable<Member> query = dbSet;
query = query.Where(x= > x.name == "test"); //!!
}
但我不能按名称搜索,错误信息说,
会员不包含&#39; name&#39;的定义没有延伸 方法&#39;名称&#39;接受类型&#39;会员&#39;的第一个论点。可能 找到。
但是会员类包含名称而且它是公开的。
我认为扩展泛型的方式是错误的。
我做错了什么?请给我一个建议。
这是我的会员班,
[Table("member")]
public class Member
{
[Key]
public int ID {get; set;}
public string name {get; set;}
public int schoolId {get; set;}
[ForeignKey("schoolId")]
public School school { get; set; }
}
答案 0 :(得分:1)
我认为你的泛型与成员名称和一个通用参数类有点不匹配,这应该解决问题
public class MemberRepository : GenericRepository<Member>