我的SQL数据库的列名大小写为camel。我正在用C#将Linq用于SQL。
有没有一种方法可以强制属性的自动生成在帕斯卡的情况下?
camel-case属性不符合C#标准,每次需要重新创建类时手动执行它是一件很痛苦的事情。
如果你的数据库真的很大,手动重命名实体很耗时,那么:
- 下载T4的LINQ到SQL模板,并将两个文件添加到项目
CSharpDataClasses.tt
和L2ST4.ttinclude
中 - 重命名
`CSharpDataClasses.tt
以匹配您的dbml
文件名(例如Northwind.tt
) - 选择
dmbl
文件(例如Northwind.dbml
)并从Custom Tool
属性中删除MSLinqToSQLGenerator
- 打开
L2ST4.ttinclude
并按照进一步描述进行更改 - 选择
Northwind.tt
文件并按Ctrl+S
(这将运行LINQ 2 SQL类生成)
L2ST4.包括文件更改:
找到类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如果你真的很懒,那么使用这个L2ST4.包括我已经更改的文件:)
我建议为T4项目l2st4.codeplex.com提供LINQ到SQL模板。您可以根据需要进行自定义。