- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有类似于以下的类:
public abstract class Base { }
public class Concrete : Base { }
public class Cement : Base { }
和下面的代码
var bases = someEntity.Bases; // returns two Concrete and once Cement
// bases now contains:
// - ProxyBase : Base
// - Concrete : Base
// - Cement : Base
var concretes = bases.OfType<Concrete>();
// concretes only contains one Concrete (i.e. the ProxyBase is ignored)
如何在不使用 NHibernate 知识污染我的类的情况下获得两个 Concrete
的预期结果?
如果可能的话,我也不想强制映射不使用延迟加载。
最佳答案
这绝对是动态代理的痛点。您可以向基类添加一个 Self 属性,以便您可以获得对未代理对象的引用:
public virtual Base Self
{
get { return this; }
}
然后通过检查类型就可以得到某个类型的具体类:
var concretes = bases.Where(b => b.Self is Concrete);
您还可以创建一个扩展方法,以便 OfType 的行为符合预期:
public static IEnumerable<T> OfType<T>(this IEnumerable<Base> bases) where T : Base
{
return Enumerable.OfType<T>(bases.Select(b => b.Self));
}
关于c# - OfType<> 不能很好地与 NHibernate 代理类一起玩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23018444/
我有以下代码,用于检测 Silverlight 应用程序中某个点下方的所有元素 然后将它们过滤为仅特定类型的那些 - CardButton IEnumerable elementsBeneathCur
如何通过相关属性中的“OfType”过滤 LINQ 查询? 示例:我在 OrderLines 集合中搜索包含匹配的 productID 列表中的产品的订单行。我想使用 contains 来完成这个:
重要 问题不是“Queryable.OfType 有什么作用,而是“我在那里看到的代码是如何实现的?” 反射(reflection) Queryable.OfType,我看到(经过一些清理):
我正在尝试使用 ngrx/store 开发应用程序,但出现错误。无法弄清楚问题。有人帮帮我吗? 这是我的错误: ERROR in src/app/store/effects/authenticatio
在TPH继承中,这之间有什么区别吗: context.Firms.OfType() 还有这个: context.Firms.Where(item => item is RedFirm); 在性能方面?
我正在尝试过滤我的实体中的派生类,但出现异常。 var filtered = db.PersonSet.OfType(). Where(person =>person.G
我有一行代码可以清除表单中的所有标签 Controls.OfType().ToList().ForEach(p => p.Visible = false); 现在我需要从该列表(如标题标签)中排除特定
我有以下词典: public Dictionary Items; 现在我需要获取字典项的值 来自特定类型的所有项。 (例如“int”) var intValues = Items.OfType>根本行
在我的 WPF 应用程序中,我有以下行: var windowList = Application.Current.Windows.OfType().ToList(); 这将返回 2 个结果。这些结果
我正在努力理解我可以做以下事情。我有一个带有静态列表的抽象类,它应该存储任何派生类的对象。同样在抽象类中,我有方法应该只处理调用派生类的对象。但是我该怎么做呢? GetType() 或 typeof(
考虑使用以下代码行: List listOfDivs = this.clientGrid.Controls.OfType() .To
假设我有一个父实体“公司”和一些继承自公司的子实体。假设子项名为“RedFirm”、“GreenFirm”和“BlueFirm”,如果我只想检索 RedFirm 和 GreenFirm 实例,查询 F
我有一个 linq 查询,它选择占位符中的所有文本框并使用结构将它们添加到列表中。我需要扩展此功能以同时获取 DropDownList 的选定值我很确定我做错了,因为当我调试该方法时,列表计数为 0。
我发誓这没有意义。 鉴于我有这个 HttpRouteCollection从 Web API,我根据一些自定义路由类型进行过滤,特别是 IAttributeRoute .我用 httpRoutes.Of
我想过滤 List 中的对象使用它们的类型,使用 OfType<>。 我的问题是,有些对象是通用接口(interface)类型,但它们没有自己的公共(public)继承接口(interface)。 我
除了可读性之外,以下 linq 查询之间的区别是什么以及我何时以及为什么要使用一个而不是另一个: IEnumerable items = listOfItems.Where(d => d is T).
OfType() 是如何工作的? 我读了this link关于发生了什么,但 LINQ 提供程序究竟如何知道如何获取与指定类型匹配的所有对象。我知道 IQueryable “链接”请求,然后在 Get
我有一个包含很多项目的 MenuStrip,我正在尝试让它们都订阅,所以我正在尝试做 menuStrip1.Items.OfType();对于每一个我都这样做: menuitem.Click += n
...或者,我如何通过它们实现的接口(interface)过滤一系列类? 假设我有一个继承自 Foo 的对象序列,即 seq。 .换句话说,我的序列将包含 Foo 的四个不同子类中的一个或多个。 每个
我有类似于以下的类: public abstract class Base { } public class Concrete : Base { } public class Cement : Bas
我是一名优秀的程序员,十分优秀!