实体框架ObjectMaterialized为匿名对象

本文关键字:对象 框架 ObjectMaterialized 实体 | 更新日期: 2023-09-27 17:53:59

ObjectMaterialized只有在创建的对象是一个实际的类时才会被调用,或者它可能有它的映射;不确定是哪个

如果我使用一个匿名对象,ObjectMaterialized委托永远不会被调用。

var obj = context.Set<MyType>().Select( x =>
{
    Prop = x.Prop1,
});

是否有一种方法可以让ObjectMaterialized委托以匿名类型调用?

目前我正在做一个解决方案,在我选择匿名类型以确保它被调用之前,我在查询上调用.ToList()

实体框架ObjectMaterialized为匿名对象

看起来不像-从文档:

当从数据中的数据创建新的实体对象时发生源作为查询或加载操作的一部分。

此事件在所有标量、复杂和引用之后引发属性已在对象上设置,但在集合设置之前加载。如果对象中存在具有相同键值的对象上下文,实体框架将不会重新创建对象事件将不会引发。

看起来也不能直接调用事件处理程序——ObjectMaterializedEventArgs构造函数是内部声明的: