是否可以使用正确的SQL代码将文本从SQL Server中的表列转换为PascalCase?
TABLE DEFINITION
----------------------
ID int
CITTA varchar(50)
PROV varchar(50)
CAP varchar(50)
COD varchar(50)
Run Code Online (Sandbox Code Playgroud)
包含要转换的文本的字段是CITTA.它包含所有大写值,如"ABANO TERME","ROMA"等.这些单词由空格分隔.
编辑
我忘了提到一些单词中有一个重音字符'.这个字符可以在单词的末尾或中间找到.
编辑2:
结果中发现了一些怪癖:
你能否就这个小问题给我一些建议?
我尝试使用CamelCasePropertyNamesContractResolver,但它不会将pascal属性名称转换为驼峰套管?
注意:这只是一个例子,我的json输入是未知的,我只是json pascal的外壳.
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System;
namespace Example
{
class Program
{
static void Main(string[] args)
{
object myJsonInput = @"{'Id':'123','Name':'abc'}"; //Example only, any json.
object myJsonOutput;
var jsonSerializersettings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
myJsonOutput = JsonConvert.DeserializeObject<object>(myJsonInput.ToString(),jsonSerializersettings);
//{{"Id": "123","Name": "abc"}}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我一直在使用Entity Framework 4和SQL Server.我发现的主要问题是数据库中的表名都是小写的并且有下划线.这意味着当我在Visual Studio中创建实体时,类和属性都是小写的下划线是否有任何方法可以为创建的类和属性的Camel Casing实现Pascal Casing?
例如:
table_name - >转换为TableName
是否需要添加任何其他模板或以任何其他方式实现此目的.
不建议手动编辑类名和属性,因为我有大量实体
c# entity-framework camelcasing pascalcasing entity-framework-4
我正在使用 ReSharper 并试图遵守它的默认规则。
在我的部分代码中,我需要将字符串属性更改为 PascalCase。
我尝试了多种方法,但找不到一种适用于所有大写缩写的方法。
前任:
MPSUser --> Still MPSUser (should be MpsUser)
ArticleID --> Still Article ID (Should be ArticleId)
closeMethod --> Works and changes to CloseMethod
Run Code Online (Sandbox Code Playgroud)
谁能帮我创建一个可以将任何字符串转换为 PascalCase 的方法?谢谢!
我用Spring Data JPA和Hibernate创建了一个Spring Boot 1.3.5 POC(这个版本的Spring Boot中的4.3.11.Final).我的后端数据库是Microsoft SQL Server,我们对数据库对象的标准命名约定是pascal case(例如MySchema.MyTable.MyColumn).我使用javax.persistence.Table和javax.persistence.Column注释来设置名称,并将spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.EJB3NamingStrategy添加到我的application.properties文件中.
一切都很完美.我甚至更新到Spring Boot 1.3.6没有任何问题.
现在我转到使用Hibernate 5.0.9.Final的Spring Boot 1.4.0.RELEASE,并且不推荐使用spring.jpa.hibernate.naming-strategy属性,而选择spring.jpa.hibernate.naming.strategy.我更改了该属性名称,但保留了EJB3NamingStrategy值.我还更改了其他已弃用的元素:
现在,生成的SQL使用默认的camel情况来强调命名约定,而不是我使用EJB3NamingStrategy的pascal情况.
//application.properties
spring.data.jpa.repositories.enabled=true
spring.data.solr.repositories.enabled=false
spring.data.mongodb.repositories.enabled=false
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.EJB3NamingStrategy
#spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.EJB3NamingStrategy
//hibernate.properties
hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
hibernate.format_sql=true
//Principal.java
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import org.hibernate.envers.AuditTable;
import org.hibernate.envers.Audited;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Entity
@Table(name="Principal", schema="Security")
@Audited
@AuditTable(value = "Principal", schema = "Audit")
public class Principal {
private static final Logger …Run Code Online (Sandbox Code Playgroud) 我即将为一种语言编写解析器,该语言应该具有关于类型,变量等命名的严格语法规则.例如,所有类必须是PascalCase,并且所有变量/参数名称和其他标识符必须是camelCase.
例如HTMLParser,不允许,必须命名HtmlParser.有关正则表达式的任何想法可以匹配PascalCase,但没有两个大写字母吗?
我读到最好在Pascal Case(ThisIsMyTableName)中使用表名.因此我想在MySQL中更改我的表格.但是phpmyadmin和SQL的SQL Manager 2005都不会让我这么做.名称保持小写,好像我根本没有改变.
有什么建议可以解决这个问题?
我有一个javascript案例转换问题,由于非英文字母我无法解决.我主要担心的是土耳其语字母.
我需要做的是:
这是我迄今为止所取得的成就:
String.prototype.turkishToUpper = function(){
var stringlow = this;
var letterslow = { 'i': '?', '?': '?', '?': '?', 'ü': 'Ü', 'ö': 'Ö', 'ç': 'Ç', '?': 'I' };
stringlow = stringlow.replace(/(([i???üçö]))/g, function(letterlow){ return letterslow[letterlow]; })
return stringlow.toUpperCase();
}
String.prototype.turkishToLower = function(){
var stringup = this;
var lettersup = { '?': 'i', 'I': '?', '?': '?', '?': '?', 'Ü': 'ü', 'Ö': 'ö', 'Ç': 'ç' };
stringup = stringup.replace(/(([?I??ÜÇÖ]))/g, …Run Code Online (Sandbox Code Playgroud) 所以我知道有些语言有预期的约定.
PHP - underscore_case() [大多数情况下,lolo]
Java - camelCase()
C# - PascalCase()
等等
什么是"Pythonic"命名约定?我知道最终并不重要,只是想知道是否有大多数模块完成的"最佳实践"方式.
我创建了一个使用以下函数的Web框架:
def to_class(text)
text.capitalize
text.gsub(/(_|-)/, '')
end
Run Code Online (Sandbox Code Playgroud)
要打开那些目录名snake_cased或hyphen-cased为PascalCased您的项目的类名称.
问题是,该功能仅去除_和-,不利用下一个字母.使用.capitalize,或者.upcase,有没有办法让你的snake/hyphen_/-cased名字成为正确的PascalCased类名?
pascalcasing ×10
camelcasing ×5
regex ×3
c# ×2
.net ×1
.net-core ×1
c#-4.0 ×1
hibernate ×1
javascript ×1
json.net ×1
mysql ×1
parsing ×1
python ×1
ruby ×1
spring ×1
sql-server ×1
title-case ×1
turkish ×1
unicode ×1