如何为 SQL Server Compact 数据库生成 DataContext?

发布于 2024-11-09 17:56:51 字数 629 浏览 0 评论 0原文

我刚刚开始使用 LINQ-to-SQL,所以我的问题可能很微不足道。

我们有一个运行在 SQL Server 2005 上的中央数据库。分布式桌面 .NET 4 应用程序将测量数据保存到本地 SQL Server Compact 数据库中。这些本地数据库 (SDF) 文件定期传输到服务器,并使用 SqlBulkCopy 将它们导入到中央数据库中。

分布式桌面应用程序使用 LINQ-to-SQL 来处理数据并创建本地 SDF 数据库。 ORM 目前是由手动编写的 DataContext 子类完成的,编译为单独的库,其中包含中央数据库的每个表的嵌套类。我手动编写 DataContext 子类只是因为我想在或多或少了解 LINQ-to-SQL 的工作原理之前避免使用代码生成器。

中央数据库目前很简单,但很快就会通过添加新表和添加现有表的新版本来进行结构扩展。问题是,如果能自动生成 DataContext 子类就好了。在理想情况下,这可以作为日常构建过程的一部分来完成。这样,在数据库团队更改数据库后,应用程序开发团队将获得新版本的 ORM 库。 (旧代码不会破坏,因为每个旧表都会保留在数据库中。只有当没有分布式应用程序版本使用它们时,旧版本的表才会被删除。)

所以我的问题是,生成现有数据库的 DataContext 子类?我更喜欢命令行工具或 API。提前感谢您的帮助!

I just started to use LINQ-to-SQL, so my problem may be trivial.

We have a central database running on SQL Server 2005. There are distributed desktop .NET 4 applications which save measurement data into a local SQL Server Compact database. These local database (SDF) files are regularly transported to the server, where they are imported into the central database using SqlBulkCopy.

The distributed desktop applications use LINQ-to-SQL to handle data and to create their local SDF database. The ORM is currently done by a manually written DataContext subclass, compiled as a separate library, which contains a nested class for every table of the central database. I wrote the DataContext subclass by hand simply because I wanted to avoid code generators before I more-or-less understand how LINQ-to-SQL works.

The central database is simple at the moment, but it will structurally expand soon, by adding new tables and adding new versions of existing tables. The problem is, it would be nice to automate the generation of the DataContext subclass. In an ideal situation, this could be done as part of the daily build process. This way after the database team changes the database, the application developer team would get the new version of the ORM library. (Old code would not break, since every old table would stay in the database. Old versions of the tables will be deleted only when none of the distributed application versions use them.)

So my question is, what is the best way to generate a DataContext subclass for an existing database? I would prefer a command line tool or an API. Thank you for your help in advance!

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文