C# 具有Postgres数据库和适当大小写的C POCO类(不使用实体框架)
我已经使用Postgres SQL创建了一个数据库,我想使用Npgsql ADO.Net提供程序库与该数据库交互。我所有的Postgres表和列都使用小写命名,但我希望我的C POCO使用大写命名 例如,在Postgres中,我的用户表被命名为users复数,并且它有一个user_name列。在C中,我想将该表和列映射到一个名为User singular的类,该类具有一个名为UserName的属性 我看到的所有使用数据注释来实现这一点的示例都是使用类似于EF的ORM,但我不想使用ORM,只想使用原始Npgsql。如果我只使用npgsqlraw而不使用ORM,数据注释会起作用吗?例如:C# 具有Postgres数据库和适当大小写的C POCO类(不使用实体框架),c#,database,postgresql,npgsql,C#,Database,Postgresql,Npgsql,我已经使用Postgres SQL创建了一个数据库,我想使用Npgsql ADO.Net提供程序库与该数据库交互。我所有的Postgres表和列都使用小写命名,但我希望我的C POCO使用大写命名 例如,在Postgres中,我的用户表被命名为users复数,并且它有一个user_name列。在C中,我想将该表和列映射到一个名为User singular的类,该类具有一个名为UserName的属性 我看到的所有使用数据注释来实现这一点的示例都是使用类似于EF的ORM,但我不想使用ORM,只想使用
[Table("users")]
class User
{
[Column("user_name")]
[Required]
public string UserName { get; set; }
}
Npgsql不为您做任何类型的映射——它只负责将您的SQL命令发送到PostgreSQL并向您提供结果。由您自己编写您想要的任何SQL—Npgsql完全不知道您的POCO或它们上的任何注释
如果您不想手工编写SQL,则需要一个O/RM,如实体框架或其他映射层。如果您决定编写自己的SQL,建议您查看Dapper。使用免责声明:我编写的免责声明将根据查询返回的模式生成POCO。poco类名基于您为查询提供的名称,因此您可以控制大小写。要控制结果集中列的大小写,请使用SQL别名。结果列成为生成的POCO中的属性。没有ORM,没有依赖关系,完全控制sql,所有查询都经过不断的集成测试。所有数据访问都将持续验证。什么是不喜欢的?Postgres支持是一项新功能,所以我非常想知道您的进展如何。将providerName=Npgsql放入QFDaultConnection conn字符串中,然后退出。Postgres不像SQL Server那样报告预期类型的输入参数。如果您希望输入参数具有类型安全性,请在SQL中的参数中附加_typeName,类型名称在其中。您可以详细说明在注释的参数部分附加_typeName吗?任何推荐信都可以。