Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Asp.net EF预生成的视图和多个上下文_Asp.net_Entity Framework_Ef Code First - Fatal编程技术网

Asp.net EF预生成的视图和多个上下文

Asp.net EF预生成的视图和多个上下文,asp.net,entity-framework,ef-code-first,Asp.net,Entity Framework,Ef Code First,在我们的环境中,我们有200多个表,我们首先使用EF5.0代码来管理数据库。我们的软件允许用户修改实体并向其添加自定义字段 在200个实体中,有100多个是固定的、不可自定义的系统实体 应用程序的初始加载时间超过2分钟 我们觉得,如果我们能以某种方式为固定实体使用EF预生成的视图,我们可以加快初始预热时间 问题是,在什么条件下,EF允许我们为项目中的多个实体预先生成视图?如果您参考上下文菜单选项 是的,视图是根据上下文设置的 然后,生成的文件就是所讨论的上下文。 检查生成的视图的源。您将看到构造

在我们的环境中,我们有200多个表,我们首先使用EF5.0代码来管理数据库。我们的软件允许用户修改实体并向其添加自定义字段

在200个实体中,有100多个是固定的、不可自定义的系统实体

应用程序的初始加载时间超过2分钟

我们觉得,如果我们能以某种方式为固定实体使用EF预生成的视图,我们可以加快初始预热时间


问题是,在什么条件下,EF允许我们为项目中的多个实体预先生成视图?

如果您参考上下文菜单选项

是的,视图是根据上下文设置的 然后,生成的文件就是所讨论的上下文。 检查生成的视图的源。您将看到构造函数按名称引用上下文。 它还使用上下文哈希检查视图和上下文是否仍然匹配

/// </Summary>
    public ViewsForBaseEntitySetsCC0A5F35D57704F5E501B804CB5CFFC8DCAD8C8E1AFC199B8C68FCD54D47FF7A()
    {
        this.EdmEntityContainerName = "THE DB CONTEXT NAME";
        this.StoreEntityContainerName = "CodeFirstDatabase";
        this.HashOverMappingClosure = "c7c56b72d1e7053b77daa9e4fb813dbb5ad00ae0a084f07f58399324dd70e906";
        this.HashOverAllExtentViews = "5fae06be83f62e86b71260bebb0e53a51d8b533588febbefbdcbaf628e514062";
        this.ViewCount = 62;
    }
//
公众视图浏览实体设置CC0A5F35D57704F5E501B804CB5CFFC8DCAD8C8E1AFC199B8C68FCD54D47FF7A()
{
this.EdmEntityContainerName=“数据库上下文名称”;
this.StoreEntityContainerName=“CodeFirstDatabase”;
this.hashopmappingclosure=“c7c56b72d1e7053b77daa9e4fb813db5ad00ae0a084f07f5839324dd70e906”;
this.HashOverAllExtentViews=“5FAE06BE83F62E86B71260BEBB0E53A51D8B533588FEBBFBDCBAF628E514062”;
this.ViewCount=62;
}
编辑:为什么选择最佳实践信息
请参见

感谢您的回复,因此如果您将一些实体放在单独的上下文中。我们应该能够为这些模型生成视图。如果这个模型在上下文A和上下文B之间有外键呢?这两个上下文也可以在同一个DLL中吗?那么您不能在较小的上下文中建模该约束。但争议裁决委员会仍将强制执行。我使用一个大的上下文来创建数据库,使用几个小的上下文来访问数据库。显然,如果要在点击DB之前进行上下文检查,较小的上下文需要逻辑组。另一个问题是,是否可以将相同的实体添加到两个上下文类中?有些情况下,对于我们需要的急切加载和连接,这是绝对的,事实上,这就是全部的想法。参见编辑