我的应用程序使用SQL Server Ce作为数据库,使用Entity Framework作为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
所以我必须创建两个实体模型,但是如何在我的程序中在两者之间进行交换?
如果我创建两个实体模型,我将有两个具有相同对象名称的类。
提前致谢
答案 0 :(得分:1)
EDMX文件实际上由三部分组成。
通常这三个部分作为资源嵌入到程序集中,并且您使用的连接字符串告诉运行时在该程序集中查找它们。
但是,您可以使用物理文件并将其与您的应用程序一起部署。通过这种方式,您可以为特定数据库使用相同的CSDL,但使用不同的SSDL / MSL集。通过这种方式,您可以针对SqlCE数据库和SQL Server数据库重用实体模型。