- 修复 IUpdate.IngoreColumns/UpdateColumns 若实体指定别名后,可能无效的bug;

This commit is contained in:
28810 2019-05-30 17:11:55 +08:00
parent f64d0e9d56
commit b13b501131
10 changed files with 121 additions and 17 deletions

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
<Version>0.6.2</Version> <Version>0.6.3</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>YeXiangQin</Authors> <Authors>YeXiangQin</Authors>
<Description>FreeSql 扩展包,可实现【延时加载】属性.</Description> <Description>FreeSql 扩展包,可实现【延时加载】属性.</Description>

View File

@ -106,11 +106,16 @@ namespace FreeSql.Tests {
[Column(IsIdentity = true)] [Column(IsIdentity = true)]
public int id { get; set; } public int id { get; set; }
public string title { get; set; } public string Title { get; set; }
public Model1 Parent { get; set; } public Model1 Parent { get; set; }
public int parent_id { get; set; } public int Parent_id { get; set; }
public string Ccc { get; set; }
public DateTime Date { get; set; }
[Column(Name = "Waxxx2")]
public int Wa_xxx2 { get; set; }
} }
public class TestEnumable : IEnumerable<TestEnumable> { public class TestEnumable : IEnumerable<TestEnumable> {
@ -128,9 +133,108 @@ namespace FreeSql.Tests {
public Enum em { get; set; } public Enum em { get; set; }
} }
/// <summary>
///
/// </summary>
[Table(Name = "news_article")]
public class NewsArticle {
/// <summary>
///
/// </summary>
[Column(Name = "article_id", IsIdentity = true, IsPrimary = true)]
public int ArticleId { get; set; }
/// <summary>
///
/// </summary>
[Column(Name = "article_title")]
public string ArticleTitle { get; set; }
/// <summary>
///
/// </summary>
[Column(Name = "category_id")]
public int CategoryId { get; set; }
/// <summary>
///
/// </summary>
[Column(Name = "channel_id")]
public int ChannelId { get; set; }
/// <summary>
/// 类型
/// </summary>
[Column(Name = "type_id")]
public int TypeId { get; set; }
/// <summary>
/// 内容简介
/// </summary>
[Column(Name = "summary")]
public string Summary { get; set; }
/// <summary>
/// 缩略图
/// </summary>
[Column(Name = "thumbnail")]
public string Thumbnail { get; set; }
/// <summary>
/// 点击量
/// </summary>
[Column(Name = "hits")]
public int Hits { get; set; }
/// <summary>
///
/// </summary>
[Column(Name = "is_display")]
public int IsDisplay { get; set; }
/// <summary>
///
/// </summary>
[Column(Name = "status")]
public int Status { get; set; }
/// <summary>
///
/// </summary>
[Column(Name = "create_time")]
public int CreateTime { get; set; }
/// <summary>
///
/// </summary>
[Column(Name = "release_time")]
public int ReleaseTime { get; set; }
}
[Fact] [Fact]
public void Test1() { public void Test1() {
var entity = new NewsArticle {
ArticleId = 1,
ArticleTitle = "测试标题"
};
var where = new NewsArticle {
ArticleId = 1,
ChannelId = 1,
};
var sqldddkdk = g.mysql.Update<NewsArticle>(where)
.SetSource(entity)
.UpdateColumns(x => new { x.Status, x.CategoryId, x.ArticleTitle })
.ToSql();
var sql1111333 = g.mysql.Update<Model2>()
.SetSource(new Model2 { id = 1, Title = "xxx", Parent_id = 0 })
.UpdateColumns(x => new { x.Parent_id, x.Date, x.Wa_xxx2 })
.NoneParameter()
.ToSql();
g.sqlite.Insert(new TestEnum { }).ExecuteAffrows(); g.sqlite.Insert(new TestEnum { }).ExecuteAffrows();
var telist = g.sqlite.Select<TestEnum>().ToList(); var telist = g.sqlite.Select<TestEnum>().ToList();
@ -145,16 +249,16 @@ namespace FreeSql.Tests {
M2Id = DateTime.Now.Second + DateTime.Now.Minute, M2Id = DateTime.Now.Second + DateTime.Now.Minute,
Childs = new[] { Childs = new[] {
new Model2 { new Model2 {
title = "model2Test_title_" + DateTime.Now.ToString("yyyyMMddHHmmss") + "0001", Title = "model2Test_title_" + DateTime.Now.ToString("yyyyMMddHHmmss") + "0001",
}, },
new Model2 { new Model2 {
title = "model2Test_title_" + DateTime.Now.ToString("yyyyMMddHHmmss") + "0002", Title = "model2Test_title_" + DateTime.Now.ToString("yyyyMMddHHmmss") + "0002",
}, },
new Model2 { new Model2 {
title = "model2Test_title_" + DateTime.Now.ToString("yyyyMMddHHmmss") + "0003", Title = "model2Test_title_" + DateTime.Now.ToString("yyyyMMddHHmmss") + "0003",
}, },
new Model2 { new Model2 {
title = "model2Test_title_" + DateTime.Now.ToString("yyyyMMddHHmmss") + "0004", Title = "model2Test_title_" + DateTime.Now.ToString("yyyyMMddHHmmss") + "0004",
} }
} }
}); });
@ -183,7 +287,7 @@ namespace FreeSql.Tests {
var ttt1 = g.sqlite.Select<Model1>().Where(a => a.Childs.AsSelect().Any(b => b.title == "111")).ToList(); var ttt1 = g.sqlite.Select<Model1>().Where(a => a.Childs.AsSelect().Any(b => b.Title == "111")).ToList();

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks> <TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
<Version>0.6.2</Version> <Version>0.6.3</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>YeXiangQin</Authors> <Authors>YeXiangQin</Authors>
<Description>FreeSql is the most convenient ORM in dotnet. It supports Mysql, Postgresql, SqlServer, Oracle and Sqlite.</Description> <Description>FreeSql is the most convenient ORM in dotnet. It supports Mysql, Postgresql, SqlServer, Oracle and Sqlite.</Description>

View File

@ -458,7 +458,7 @@ namespace FreeSql.Internal.CommonProvider {
_paramsSource.Clear(); _paramsSource.Clear();
var colidx = 0; var colidx = 0;
foreach (var col in _table.Columns.Values) { foreach (var col in _table.Columns.Values) {
if (col.Attribute.IsIdentity == false && col.Attribute.IsVersion == false && _ignore.ContainsKey(col.CsName) == false) { if (col.Attribute.IsIdentity == false && col.Attribute.IsVersion == false && _ignore.ContainsKey(col.Attribute.Name) == false) {
if (colidx > 0) sb.Append(", "); if (colidx > 0) sb.Append(", ");
sb.Append(_commonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = "); sb.Append(_commonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ");
var value = col.GetMapValue(_source.First()); var value = col.GetMapValue(_source.First());
@ -484,7 +484,7 @@ namespace FreeSql.Internal.CommonProvider {
_paramsSource.Clear(); _paramsSource.Clear();
var colidx = 0; var colidx = 0;
foreach (var col in _table.Columns.Values) { foreach (var col in _table.Columns.Values) {
if (col.Attribute.IsIdentity == false && col.Attribute.IsVersion == false && _ignore.ContainsKey(col.CsName) == false) { if (col.Attribute.IsIdentity == false && col.Attribute.IsVersion == false && _ignore.ContainsKey(col.Attribute.Name) == false) {
if (colidx > 0) sb.Append(", "); if (colidx > 0) sb.Append(", ");
sb.Append(_commonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = "); sb.Append(_commonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ");

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;net452</TargetFrameworks> <TargetFrameworks>netstandard2.0;net452</TargetFrameworks>
<Version>0.6.2</Version> <Version>0.6.3</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>YeXiangQin</Authors> <Authors>YeXiangQin</Authors>
<Description>FreeSql 数据库实现,基于 MySql 5.6</Description> <Description>FreeSql 数据库实现,基于 MySql 5.6</Description>

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks> <TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
<Version>0.6.2</Version> <Version>0.6.3</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>YeXiangQin</Authors> <Authors>YeXiangQin</Authors>
<Description>FreeSql 数据库实现,基于 MySql 5.6</Description> <Description>FreeSql 数据库实现,基于 MySql 5.6</Description>

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks> <TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
<Version>0.6.2</Version> <Version>0.6.3</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>YeXiangQin</Authors> <Authors>YeXiangQin</Authors>
<Description>FreeSql 数据库实现,基于 Oracle 11</Description> <Description>FreeSql 数据库实现,基于 Oracle 11</Description>

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks> <TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
<Version>0.6.2</Version> <Version>0.6.3</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>YeXiangQin</Authors> <Authors>YeXiangQin</Authors>
<Description>FreeSql 数据库实现,基于 PostgreSQL 9.5</Description> <Description>FreeSql 数据库实现,基于 PostgreSQL 9.5</Description>

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;net451</TargetFrameworks> <TargetFrameworks>netstandard2.0;net451</TargetFrameworks>
<Version>0.6.2</Version> <Version>0.6.3</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>YeXiangQin</Authors> <Authors>YeXiangQin</Authors>
<Description>FreeSql 数据库实现,基于 SqlServer 2005+并根据版本适配分页方法row_number 或 offset fetch next</Description> <Description>FreeSql 数据库实现,基于 SqlServer 2005+并根据版本适配分页方法row_number 或 offset fetch next</Description>

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks> <TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
<Version>0.6.2</Version> <Version>0.6.3</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>YeXiangQin</Authors> <Authors>YeXiangQin</Authors>
<Description>FreeSql 数据库实现,基于 Sqlite 3.0</Description> <Description>FreeSql 数据库实现,基于 Sqlite 3.0</Description>