2

在 Entity Framework 4 上使用模型优先方法,我想来回切换数据库从真正的 SQL (Data.SQLClient) 到 SQL CE (Data.ServerCe)。

我知道如何手动操作:

将提供程序从System.Data.SqlServerCe.3.5更改为System.Data.SqlClient

  1. 更改模型容器/上下文的连接字符串
  2. .edmx 文件中的更改(Schema Namespace="Model1.Store" provider="..." 属性)

我不知道如何在构建/编译时进行更改,因此我可以根据配置轻松地在 SQLClient 和 SQLServerCE 之间切换。

任何其他方式如何达到相同的结果也将不胜感激!(有一个模型可以在 SQL 和 SQL CE 之间切换数据源)

4

1 回答 1

2

我不知道在这种情况下它是否最适合您,但是我想确保您知道这种解决问题的方法。

您可以(右键)在 edmx 的设计器视图内单击(不是在解决方案资源管理器中的文件上)并单击“属性”,在 PropertyGrid 中查找“元数据工件处理”并从“嵌入输出程序集”更改值到“复制到输出目录”。

但是,一旦更改此设置,而不是将 edmx 烘焙到程序集中,您会注意到输出目录中有三个基于 XML 的文件(MyModel.ssdl、MyModel.csdl、MyModel.msl)。

作为构建过程的一部分,您现在可以自由地编写对这些文件的任何更改的脚本。

还要确保将连接字符串更改为以下内容:

<add name="MyEntities" connectionString="metadata=.\MyModel.csdl|.\MyModel.ssdl|.\MyModel.msl; (..) />

正如我所说,我不确定这是否是解决您特定问题的最佳方法。但是,我使用它为不同的数据库模式生成不同的构建。有用。

于 2011-04-07T12:14:12.803 回答