我正在尝试将对象类型传递给方法.我正在为我的CRUDRepository执行此操作,这是由其他存储库继承的,但我无法弄清楚如何知道我正在处理的类型.
例如:
public PageOf<Entity> GetPageOfEntity(int pageNumber, int pageSize)
{
// Here i need to work with the entity type to make calls to database
}
Run Code Online (Sandbox Code Playgroud)
该实体是可以被其他实体(用户,产品,等等),并且该方法返回一个分页结果继承一个对象.我这样做是为了避免为每个实体创建一个GetPageOf方法.
将我想要处理分页结果的对象类型传递给方法的正确方法是什么?
编辑:
这是实体的一个例子
public abstract class Entity
{
public virtual long Id { get; set; }
public virtual DateTime Created { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
而用户对象:
public class User : Entity
{
public string FirstName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
因为我正在尝试编写单个类来处理一些crud操作,我需要在方法中知道我正在使用什么对象(但我现在尝试为每个对象类型创建一个方法)
谢谢
使方法通用:
public PageOf<TEntity> GetPageOfEntity<TEntity>(int pageNumber, int pageSize)
where TEntity : Entity
{
Type entityType = typeof(TEntity);
...
}
Run Code Online (Sandbox Code Playgroud)