我有几个实现以下 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;}我非常感谢您帮助解决这个问题!谢谢。
1 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
代替
if (typeof(T) is IInactive)
尝试
if (typeof(IInactive).IsAssignableFrom(typeof(T)))
- 1 回答
- 0 关注
- 61 浏览
添加回答
举报
0/150
提交
取消