问题描述及重现代码:
在构建时使用UseNameConvert(FreeSql.Internal.NameConvertType.PascalCaseToUnderscoreWithLower),致使该规则的列至对象属性的映射和[Column(Name="xx_yy")]约定的映射规则在Ado执行sql语句时双双失效,不过,ISelect查询时的对象映射仍是正常的。
// c# code
IFreeSql fsq = new FreeSqlBuilder().UseConnectionString(DataType.Sqlite, @"Data Source=data.db")
.UseNameConvert(FreeSql.Internal.NameConvertType.PascalCaseToUnderscoreWithLower)
.Build();
class Resources
{
[Column(Name = "id", IsPrimary = true, IsIdentity = true)]
public int Id { get; set; }
[Column(Name = "tid")]
public int Tid { get; set; }
//[Column(Name ="resource_type")] //--case 1
public string ResourceType { get; set; }
[Column(Name = "resource_value")] //--case2
public string ResourceValue { get; set; }
//[Column(Name = "resource_value")] // valid case
//public string Resource_Value { get; set; }
[Column(Name = "created_at")]
public DateTime CreatedAt { get; set; }
}
var res = fsq.Ado.Query<Resources>("select * from resources");
//以上只能接收到无下划线的列,如id,tid,当泛型类型是dynamic时,名称为数据库中的列名,值可以正常接收
CREATE TABLE resources (
id INTEGER PRIMARY KEY AUTOINCREMENT,
tid INTEGER NOT NULL,
resource_type TEXT NOT NULL,
resource_value TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
数据库版本
SQLite version 3.50.2
安装的Nuget包
<PackageReference Include="FreeSql.Extensions.Linq" Version="3.5.309" />
<PackageReference Include="FreeSql.Provider.Sqlite" Version="3.5.309" />
.net framework/. net core? 及具体版本
net10.0
问题描述及重现代码:
在构建时使用
UseNameConvert(FreeSql.Internal.NameConvertType.PascalCaseToUnderscoreWithLower),致使该规则的列至对象属性的映射和[Column(Name="xx_yy")]约定的映射规则在Ado执行sql语句时双双失效,不过,ISelect查询时的对象映射仍是正常的。数据库版本
SQLite version 3.50.2
安装的Nuget包
.net framework/. net core? 及具体版本
net10.0