C# 强制自动linq到sql类具有pascal大小写属性?
我的SQL数据库的列名是驼峰式的。 我正在使用LINQtoSQL和C 有没有办法强制自动生成pascal情况下的属性C# 强制自动linq到sql类具有pascal大小写属性?,c#,linq-to-sql,properties,camelcasing,pascalcasing,C#,Linq To Sql,Properties,Camelcasing,Pascalcasing,我的SQL数据库的列名是驼峰式的。 我正在使用LINQtoSQL和C 有没有办法强制自动生成pascal情况下的属性 camel-case属性不符合C标准,每次需要重新创建类时手动执行都很痛苦。我建议为T4项目使用LINQ到SQL模板。您可以根据需要自定义它。我建议为T4项目使用LINQ到SQL模板。您可以根据需要对其进行自定义。如果您的数据库非常大,手动重命名实体非常耗时,则: 下载两个文件并将其添加到项目CSharpDataClasses.tt和L2ST4.ttinclude中。 重命名`C
camel-case属性不符合C标准,每次需要重新创建类时手动执行都很痛苦。我建议为T4项目使用LINQ到SQL模板。您可以根据需要自定义它。我建议为T4项目使用LINQ到SQL模板。您可以根据需要对其进行自定义。如果您的数据库非常大,手动重命名实体非常耗时,则: 下载两个文件并将其添加到项目CSharpDataClasses.tt和L2ST4.ttinclude中。 重命名`CSharpDataClasses.tt以匹配您的dbml文件名,例如Northwind.tt 选择dmbl文件,例如Northwind.dbml,并从自定义工具属性中删除MSLinqToSQLGenerator。 打开L2ST4.t包括并按进一步说明进行更改 选择Northwind.tt文件并按Ctrl+S这将运行LINQ 2 SQL类生成。 L2ST4.t包括文件更改: 在文件顶部找到类数据的定义,并将此代码粘贴到其前面:
class Lazy
{
public static string FirstLetterToUpper(string str)
{
return Char.ToUpper(str[0]) + str.Substring(1);
}
}
然后找到类表的定义,并在构造函数中将成员属性初始化替换为
Member = Lazy.FirstLetterToUpper((String)xe.Attribute("Member"));
Name = Lazy.FirstLetterToUpper((String) xe.Attribute("Name"));
查找类并在构造函数中将名称属性初始化替换为
Member = Lazy.FirstLetterToUpper((String)xe.Attribute("Member"));
Name = Lazy.FirstLetterToUpper((String) xe.Attribute("Name"));
最后,在其构造函数集中查找类关联和
typeName = Lazy.FirstLetterToUpper((String) xe.Attribute("Type"));
PS如果你真的很懒,那么使用已经被我更改的:如果你的数据库很大,手动重命名实体很耗时,那么: 下载两个文件并将其添加到项目CSharpDataClasses.tt和L2ST4.ttinclude中。 重命名`CSharpDataClasses.tt以匹配您的dbml文件名,例如Northwind.tt 选择dmbl文件,例如Northwind.dbml,并从自定义工具属性中删除MSLinqToSQLGenerator。 打开L2ST4.t包括并按进一步说明进行更改 选择Northwind.tt文件并按Ctrl+S这将运行LINQ 2 SQL类生成。 L2ST4.t包括文件更改: 在文件顶部找到类数据的定义,并将此代码粘贴到其前面:
class Lazy
{
public static string FirstLetterToUpper(string str)
{
return Char.ToUpper(str[0]) + str.Substring(1);
}
}
然后找到类表的定义,并在构造函数中将成员属性初始化替换为
Member = Lazy.FirstLetterToUpper((String)xe.Attribute("Member"));
Name = Lazy.FirstLetterToUpper((String) xe.Attribute("Name"));
查找类并在构造函数中将名称属性初始化替换为
Member = Lazy.FirstLetterToUpper((String)xe.Attribute("Member"));
Name = Lazy.FirstLetterToUpper((String) xe.Attribute("Name"));
最后,在其构造函数集中查找类关联和
typeName = Lazy.FirstLetterToUpper((String) xe.Attribute("Type"));
PS如果你真的很懒,那就使用我已经修改过的:提供的东西,比如命名约定、Linq到SQL模型更新以及其他一些好东西。不是免费的,但是如果你真的在使用LINQtoSQL的话,这是值得的!我想你不可能重命名你的SQL列了吧?这听起来像是最简单的方法。@SteveDanner实际上最简单的方法是在dbml设计器中重命名生成的类。它提供了类似的东西——命名约定、Linq到SQL模型刷新以及其他一些好东西。不是免费的,但是如果你真的在使用LINQtoSQL的话,这是值得的!我想你不可能重命名你的SQL列了吧?这听起来是最简单的方法。@SteveDanner实际上最简单的方法是在dbml Designer中重命名生成的类。我正在使用Entity Framework 4.0和sql server。我也有类似的问题。。属性都是小写,并且包含下划线。。。类似地,实体框架也会以数据库中的名称生成类。。。有什么解决办法吗?@Xavier我不知道T4模板是否与EF 4.0兼容。但您可以使用T4更改属性名的生成。我使用的是Entity Framework 4.0和sql server。我也有类似的问题。。属性都是小写,并且包含下划线。。。类似地,实体框架也会以数据库中的名称生成类。。。有什么解决办法吗?@Xavier我不知道T4模板是否与EF 4.0兼容。但您可以使用T4更改属性名生成。