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

发布于 2024-12-19 10:56:09 字数 513 浏览 2 评论 0原文

我的应用程序使用 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 

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

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

提前致谢

My application uses SQL Server Ce for the database and Entity Framework as the ORM.
Now I'm trying to switch to SQL Server Express but I'm having trouble doing so.

UPDATE

So after banging my head for 3 hours I finally figured out that you cannot use an Entity model generated from a SQL Server CE database against a SQL Server (in my case Express version).

I used a Diff program to view the generated files (Designer.cs) for both databases and I noticed these differences in the file:

SQL Server CE                          SQL Server 
FK__Download__000000000000003F         FK__Download__PlaneI__0519C6AF 

So I have to create two entity models, but how can I interchange between the two in my program?

If I create two entity models, I'll have two classes with the same object names.

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青芜 2024-12-26 10:56:09

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

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

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

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

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

The EDMX file actually consists out of three parts.

  • CSDL, your conceptual model
  • SSDL, the storage model
  • MSL, the mapping between those two.

Normally these three parts are embedded in as a resource in your assembly and the connection string that you use tells the runtime to look for them in that assembly.

You can however use physical files and deploy them with your application. In such a way you can use the same CSDL but a different set of SSDL/MSL for the specific database. In that way you can reuse your entity model against both your SqlCE database and a SQL Server database.

Here you can find a blog post about swapping EF metadata

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文