从SQL Server CE切换到SQL Server Express实体问题

本文关键字:SQL Server Express 实体 体问题 CE | 更新日期: 2023-09-27 18:16:45

我的应用程序使用SQL Server Ce作为数据库和实体框架作为ORM。现在我正试图切换到SQL Server Express,但我有麻烦这样做。

所以在敲了我的头3个小时后,我终于弄清楚,你不能使用从SQL Server CE数据库生成的实体模型对SQL Server(在我的情况下Express版本)。

我使用Diff程序来查看两个数据库生成的文件(Designer.cs),我注意到文件中的这些差异:

SQL Server CE                          SQL Server 
FK__Download__000000000000003F         FK__Download__PlaneI__0519C6AF 

所以我必须创建两个实体模型,但是我如何在我的程序中在两者之间进行交换?

如果我创建两个实体模型,我将有两个具有相同对象名称的类。

Thanks in advance

从SQL Server CE切换到SQL Server Express实体问题

EDMX文件实际上由三部分组成。

  • CSDL,你的概念模型
  • SSDL,存储模型
  • MSL,两者之间的映射。

通常这三个部分作为资源嵌入到您的程序集中,并且您使用的连接字符串告诉运行时在该程序集中查找它们。

但是,您可以使用物理文件并将它们部署到应用程序中。通过这种方式,您可以使用相同的CSDL,但针对特定数据库使用不同的SSDL/MSL集。通过这种方式,您可以对SqlCE数据库和SQL Server数据库重用您的实体模型。

你可以在这里找到关于交换EF元数据的博客文章