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
Entity framework 从生产中的数据库模式以编程方式创建EF模型(无VS生态系统)_Entity Framework_Entity Framework 4.1_Data Access Layer - Fatal编程技术网

Entity framework 从生产中的数据库模式以编程方式创建EF模型(无VS生态系统)

Entity framework 从生产中的数据库模式以编程方式创建EF模型(无VS生态系统),entity-framework,entity-framework-4.1,data-access-layer,Entity Framework,Entity Framework 4.1,Data Access Layer,我想在我的应用程序(产品)中利用EF作为DAL 我的应用程序中的一个功能允许在产品投入生产时创建数据库模式 一旦这个模式在数据库中实现,我想从这个数据库创建EF模型。此外,我应该能够将数据库模式更改(尽管非常罕见)反映到模型上 由于生产环境缺少Visual Studio设置,因此排除了常规的数据库到模型的方法 代码优先方法不太合适,因为其代码优先迁移功能仍处于测试阶段 我的选择是什么?我认为整个EF不适合您的解决方案,因为您忘记了主要问题。即使您能够在运行时定义数据库映射,您仍然需要映射新表的类

我想在我的应用程序(产品)中利用EF作为DAL

我的应用程序中的一个功能允许在产品投入生产时创建数据库模式

一旦这个模式在数据库中实现,我想从这个数据库创建EF模型。此外,我应该能够将数据库模式更改(尽管非常罕见)反映到模型上

由于生产环境缺少Visual Studio设置,因此排除了常规的数据库到模型的方法

代码优先方法不太合适,因为其代码优先迁移功能仍处于测试阶段


我的选择是什么?

我认为整个EF不适合您的解决方案,因为您忘记了主要问题。即使您能够在运行时定义数据库映射,您仍然需要映射新表的类,并且需要使用新类的代码。若您更改了表中的某些内容(例如更改列的数据类型或添加列),则现有类也必须更改。您将如何在运行时做到这一点?

数据模式将遵循一种模式;它有一个层次结构,即主实体位于顶部,之后会有子实体位于一个或另一个级别。树中的每个节点都将映射(不需要)到一个表。因此,我将通过基于模式的遍历逻辑引用实体。这将确保数据库中的任何更改(如果反映在模型中)从遍历的角度来看不会有任何挑战。因此,我的主要需求是能够生成模型并使其与数据库保持同步。拉迪斯拉夫,你现在的看法是什么?我不确定我是否理解你的结构,因为现在我怀疑在没有任何动态行为的情况下使用EF进行映射是可能的。拉迪斯拉夫。。。如果我含糊不清,我很抱歉。然而,我有一个设计的想法,并希望通过连接一些点来实现我的目标。因此,如果您能让我知道是否可以从现有数据库以编程方式生成EF模型,我将不胜感激。用于生成映射所有部分的类应位于
System.Data.Entity.Design
(在具有相同名称的程序集中)。我不完全理解你想做什么,所以如果你发现有什么有用的,请自己检查一下。