【发布时间】:2008-11-08 18:04:26
【问题描述】:
首先,我是Linq to Sql新手,所以请温柔:)。
我有过去 3.5 年开发的现有 ASP.Net 应用程序。它下面有相当大的数据模型,大约 350 个表。我正在尝试用 Linq to SQL 做一些新的事情。
第一印象是 linq 设计器和 SqlMetal 是为不大于 NorthWind 示例的数据库构建的。以下是我遇到的一些问题:
- 我有很多地方都需要的表
Products(库存、开票、生产……)。如果我将表Products放在每个 dbml 文件中,linq 设计器将在每个文件中创建Product类。我不想要那个。我只想要一个Product课程。 - 我有关于运输的 DataContext。它需要大约 40 张桌子。这使得 dbml 文件很难管理。有没有办法创建更小的 dbml 文件,然后将它们(作为参考)包含到一些“主要”dbml 中?
目前,我真的很喜欢 Linq,但我认为它仍然严重缺乏超过 10 个表的设计工具。
我现在的解决方案是使用 Linq 设计器构建更小的模型,然后手动合并它们(添加属性和引用),因此会生成大量代码,但也会有大量手动工作。
我是否错过了一些重要的事情,或者是 Linq to Sql 的当前状态?
【问题讨论】:
-
我没有答案,但我也有兴趣知道这一点,因为我注意到了同样的事情。您使用的方法是我认为如果我有很多表我也会这样做的。
-
我不明白为什么 SqlMetal 不是您问题的答案?它适用于大型多表数据库。我刚刚将一个批处理脚本连接到 Visual Studio 中的“外部工具”菜单,这样我就可以一键重建 ORM。
-
@James McCormack:您能否添加答案并描述您如何组织课程。我想要的是有装配库存和一些 20-30 类对应于相同数量的表。然后是组装销售,然后是财务。我没有找到简单的方法来自动化这个,所以我求助于这个:为少量表创建 dbml,然后手动编辑代码。你知道 .Net4 的 SqlMetal 是否有所改进?
标签: linq-to-sql