强制自动linq到sql类有pascal案例属性?

时间:2012-11-14 21:43:42

标签: c# linq-to-sql properties camelcasing pascalcasing

我的SQL数据库在camel的情况下有列名。 我正在使用Linq to SQL with C#。

有没有办法强制自动生成属性为pascal case?

驼峰案例属性不符合C#标准,每次我需要重新创建类时手动执行它都很痛苦。

2 个答案:

答案 0 :(得分:1)

如果您的数据库非常大并且手动重命名实体非常耗时,那么:

  • 下载LINQ to SQL templates for T4并将两个文件添加到您的项目CSharpDataClasses.ttL2ST4.ttinclude
  • 重命名`CSharpDataClasses.tt以匹配您的dbml文件名(例如Northwind.tt
  • 选择dmbl文件(例如Northwind.dbml)并从MSLinqToSQLGenerator媒体资源中删除Custom Tool
  • 打开L2ST4.ttinclude并按照进一步说明进行更改
  • 选择Northwind.tt文件并按Ctrl+S(这将生成LINQ 2 SQL类生成)。

L2ST4.ttinclude文件更改:

找到类Data的定义(位于文件顶部)并将此代码粘贴到它之前:

class Lazy
{
   public static string FirstLetterToUpper(string str)
   {
       return Char.ToUpper(str[0]) + str.Substring(1);
   }
}

然后找到类Table的定义,并在构造函数中用

替换Member属性初始化
Member = Lazy.FirstLetterToUpper((String)xe.Attribute("Member"));

查找类Class并在构造函数中用

替换Name属性初始化
Name = Lazy.FirstLetterToUpper((String) xe.Attribute("Name")); 

最后,找到类Association并在其构造函数集

typeName = Lazy.FirstLetterToUpper((String) xe.Attribute("Type"));

PS如果你真的很懒,那么使用我已经改变的this L2ST4.ttinclude file:)

答案 1 :(得分:0)

我建议T4项目l2st4.codeplex.com使用LINQ to SQL模板。您可以根据需要自定义它。