我想使用generic从我的数据库中获取数据。
所以我创建了一个接口来做到这一点。我还创建了一个类import org.springframework.hateoas.core.Relation;
@Relation(collectionRelation = "services")
public class SDDFService extends ResourceSupport {
}
来为DB Model
DBRepo
这是我的界面
public partial class UserAccount : DBRepo
{
public int Id { get; set; }
...
}
public class DBRepo
{
}
主中的
public class DBServices
{
public interface IDBAction<TEntity> where TEntity : DBRepo
{
List<TEntity> GetAllData(TEntity _entity);
}
public class dbCRUD<TEntity> : IDBAction<TEntity> where TEntity : DBRepo
{
private readonly CoreContext _db;
private DbSet<TEntity> dbSet;
public dbCRUD(CoreContext _db)
{
this._db = _db;
this.dbSet = _db.Set<TEntity>();
}
public List<TEntity> GetAllData(TEntity _entity)
{
var query = this.dbSet.Select(o=>o).ToList();
return query;
}
}
}
我收到此错误
'无法为'DBRepo'创建DbSet,因为此类型不包含在上下文的模型中。'
那么,如何在ServiceCollection() provider = new ServiceCollection()
.AddScoped<IDBAction<DBRepo>, dbCRUD<DBRepo>>()
.AddScoped<CoreContext>()
.AddDbContext<CoreContext>(options => options.UseSqlServer(SysBase.testConn1))
.BuildServiceProvider();
provider.GetService<IDBAction<DBRepo>>().GetAllData(new UserAccount());
中创建DBRepo
或如何解决此问题?
答案 0 :(得分:0)
您必须使您的上传继承自DbContext
。您可以check here了解更多详情。
public class CoreContext : DbContext
{
public CoreContext(DbContextOptions<CoreContext> options)
: base(options)
{ }
public DbSet<UserAccount> Users { get; set; }
}