Linq to SQL代码生成器功能

时间:2010-03-22 18:18:17

标签: linq-to-sql code-generation

我非常喜欢Linq to SQL和它鼓励的编程模型。我认为,在许多情况下,当您控制数据库模式和代码时,不值得为数据建立不同的关系和对象模型。使用Linq to SQL可以轻松地从.NET进行类型安全数据访问,使用部分扩展方法来实现业务规则。

不幸的是,由于缺少模式刷新功能,我不喜欢dbml设计器。到目前为止,我已经使用了SqlMetal,但缺少dbml设计器的自定义选项。因此我开始研究一种工具,它可以像SqlMetal一样重新生成整个代码文件,但是能够进行dbml设计器中可用的自定义(以后可能还有更多)。

自定义将在xml文件中描述,该文件仅包含那些不应具有默认值的部分。这应该保持xml文件大小以及它的维护负担。

为了帮助我专注于正确的功能,我想知道: linq to sql代码生成器中最重要的功能是什么?

1 个答案:

答案 0 :(得分:1)

不确定这是不是您正在寻找的东西,但这里有一些我希望看到的功能:

  • 将枚举类型分配给外键字段的功能。因此,如果您的“Item”表返回“ItemType”表,则可以轻松地为该关系分配“ItemType”枚举,这样当您访问get / set属性时,您将获得严格类型的枚举而不是ID a记录在另一张表中。我认为你可以在DBML设计器生成的.cs文件中执行此操作,但当然下次将表重新添加到设计器时它会被吹走。此外,您可以在映射到ID字段的分部类中添加一个新属性,但如果这是在设计器中本地完成的话,那就太好了。

  • 在FK关系的情况下,让它根据FK字段名称或FK约束名称命名属性。例如,如果“Item”表具有引用“User”表的“CreatedByUserID”和“UpdatedByUserID”字段,则LINQ DBML设计器将创建一个Item类,其属性名为“User”和“User1”,因此您几乎不得不猜测哪个是创建的,哪个是更新的(并希望在分部类中添加更多,更明确的属性)。如何生成这些名称会有点毛茸茸,但任何事情都比现在更好。