【发布时间】:2011-06-14 19:13:16
【问题描述】:
我想写一个签名为Expression<Func<T, bool>> Foo<T>()的方法。我的 U 类继承自 T。我想在此委托中包含特定于 U 的处理。问题是,T 不能隐式转换为 U。有什么方法可以在这个方法中访问 U 特定的属性吗?
复杂性:我也有想要处理的类型 V : T,所以我不能通过在签名中用 U 替换 T 来利用方差。
【问题讨论】:
-
听起来您需要将
U类型中的一些所需功能移动到基本类型T。 -
不幸的是我不能,因为非空鉴别器列必须映射到 EF 中的子级:-/
-
为什么不能在你的方法中明确地将
T转换为U? -
实体框架不允许隐式转换 edm 类型。我可以写一些隐式运算符,但我不知道是否有其他方法。
标签: c# entity-framework generics delegates variance