我有一个项目,我试图使用带有存储库设计模式的工作单元来使用EF Core执行CRUD操作。 FWIW,我在.NET Core 2.2上。
我是否可以创建一个(抽象的)类来为某些模型而非某些模型实现某些操作?在当前的思考过程中,我想在CountRepository类中执行此操作。我想从TypeA,TypeB和TypeC返回实体记录-这些实体记录满足CountDate和XCount字段的特定条件。
模型\
。
public abstract class BaseEntity
{
public bool Enabled { get; set; }
public DateTime CreatedDate { get; set; }
public BaseEntity()
{
Enabled = true;
CreatedDate = DateTime.Now;
}
}
public abstract class BaseCountEntity : BaseEntity
{
public DateTime CountDate { get; set; }
public long XCount { get; set; }
}
public class TypeA : BaseCountEntity
{
public int TypeAId { get; set; }
public long ACount { get; set; }
}
public class TypeB : BaseCountEntity
{
public int TypeAId { get; set; }
public long B1Count { get; set; }
public long B2Count { get; set; }
}
public class TypeB : BaseCountEntity
{
public int TypeAId { get; set; }
public long C1Count { get; set; }
public long C2Count { get; set; }
public long C3Count { get; set; }
}
public class Repository<TEntity> : IRepository<TEntity> where TEntity : class
{
protected readonly DbContext Context;
protected readonly DbSet<TEntity> _entities;
public Repository(DbContext context)
{
Context = context;
_entities = Context.Set<TEntity>();
}
// GET method(s) on <TEntity> collection
// ADD method(s) on <TEntity> collection
// UPDATE method(s) on <TEntity> collection
// REMOVE method(s) on <TEntity> collection
}