我有几个实现以下 IInactive 接口的实体框架类。
public interface IInactive
{
bool inactive { get; set; }
}
例如我的Order类定义如下:
public class Order : IInactive
{
[Key]
[Required]
public Guid orderId { get; set; }
...
public bool inactive { get; set; }
}
我正在尝试实现一个通用方法,该方法可用于所有对象(实体),无论它们是否实现 IInactive 接口。它将被称为如下:
var query = GetAllActive<Order>();
我的这个通用方法的代码如下所示:
public IQueryable<T> GetAllActive<T>() where T : class
{
DbSet<T> dbSet = this._db.Set<T>();
// Does the entity implement the IInactive interface.
// If yes, only return "active" row, otherwise return all rows
if (typeof(T)is IInactive)
{
// Problem: the code in this block never executes, that is,
// (typeof(T)is IInactive) never evaluates to true
...
}
return dbSet;
}
我非常感谢您帮助解决这个问题!谢谢。
慕运维8079593
相关分类