我有幾個(gè)實(shí)現(xiàn)以下 IInactive 接口的實(shí)體框架類。public interface IInactive{ bool inactive { get; set; }}例如我的Order類定義如下:public class Order : IInactive{ [Key] [Required] public Guid orderId { get; set; } ... public bool inactive { get; set; }} 我正在嘗試實(shí)現(xiàn)一個(gè)通用方法,該方法可用于所有對(duì)象(實(shí)體),無(wú)論它們是否實(shí)現(xiàn) IInactive 接口。它將被稱為如下:var query = GetAllActive<Order>();我的這個(gè)通用方法的代碼如下所示: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;}我非常感謝您幫助解決這個(gè)問(wèn)題!謝謝。
使用泛型和接口的 Linq 查詢
炎炎設(shè)計(jì)
2023-09-16 16:19:51