Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为DBContext创建自定义ObjectContext,以在CreateObject()中实现自定义逻辑_C#_Entity Framework_Entity Framework 6 - Fatal编程技术网

C# 为DBContext创建自定义ObjectContext,以在CreateObject()中实现自定义逻辑

C# 为DBContext创建自定义ObjectContext,以在CreateObject()中实现自定义逻辑,c#,entity-framework,entity-framework-6,C#,Entity Framework,Entity Framework 6,是否可以使用简单的新DbContext并实现自定义ObjectContext来重写ObjectContext.CreateObject方法 我需要这样才能在设置属性之前初始化实体。Objectcontext.CreateObject不是EF内部使用的,因此为此目的重写它是无用的。为什么不在对象的构造函数中初始化对象呢?我使用的实体POCO也用于另一个自实现的ORM。我们即将实现EF作为一种新的数据访问方式。但这将是一个长期运行的过程。在构造函数中,此实体的数据状态设置为created。从DB加载

是否可以使用简单的新DbContext并实现自定义ObjectContext来重写ObjectContext.CreateObject方法


我需要这样才能在设置属性之前初始化实体。

Objectcontext.CreateObject不是EF内部使用的,因此为此目的重写它是无用的。为什么不在对象的构造函数中初始化对象呢?我使用的实体POCO也用于另一个自实现的ORM。我们即将实现EF作为一种新的数据访问方式。但这将是一个长期运行的过程。在构造函数中,此实体的数据状态设置为created。从DB加载的所有实体都将获得其加载的数据状态。现在我想在具体化过程中将数据状态设置为Loading,以禁用任何验证和其他逻辑。是否有其他选项来检测此实体当前是否已物化?或者是否有一个选项可以通过EF设置一个不从DB加载的属性?您只能挂接到ObjectContext.ObjectMaterialized事件,该事件在构建对象后运行。DbContext是ObjectContext的包装器。我知道这个事件。但它是在设置了所有属性后启动的。太晚了。是否有将属性映射为从计算字段只读的选项?所以我可以通过生成的sql设置我的DataState属性?例如:Me.propertyfunction t.DataState.HasColumnName1作为DataState.hasDatabaseGeneratedOption.DatabaseGeneratedOption.computed,但它也应该是数据库中的计算列。我认为你不想那样做。