代码之家  ›  专栏  ›  技术社区  ›  Sonic Soul

泛型类约束:2种类型

  •  1
  • Sonic Soul  · 技术社区  · 14 年前

    我想创建一个接受T的泛型类。

    两者的属性都是一样的。

    我想创建一个泛型类,它将接受表或视图,并基于属性构造一个linq查询。

    Foo类,其中T:myTable或T:myView

    我怎么能做到这样?

    我构造查询的方式如下所示:

            if (critera.IsTradeDate)
                predicate = PredicateUtility.And(predicate, t => t.DateTrade >= critera.FromDate);
    

    1 回复  |  直到 14 年前
        1
  •  2
  •   Ian Mercer    14 年前

    创建接口 ITableOrView (或者其他更好的名字)。将接口应用于表或视图实体的两个部分类。

    使用创建泛型类 where T : ITableOrView

    现在可以使用接口类型。

    在实体框架查询中,不能在许多地方使用接口,因此实际上需要将该工作委托回“t”类本身。