从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
EDMX文件实际上由三部分组成。
- CSDL,你的概念模型
- SSDL,存储模型
- MSL,两者之间的映射。
通常这三个部分作为资源嵌入到您的程序集中,并且您使用的连接字符串告诉运行时在该程序集中查找它们。
但是,您可以使用物理文件并将它们部署到应用程序中。通过这种方式,您可以使用相同的CSDL,但针对特定数据库使用不同的SSDL/MSL集。通过这种方式,您可以对SqlCE数据库和SQL Server数据库重用您的实体模型。你可以在这里找到关于交换EF元数据的博客文章