## v0.9.16

- 增加 BaseRepository.AttachOnlyPrimary 方法,只附加实体的主键值;
> 在更新前使用可实现不查询数据库再更新、也可以实现更新时不更新值为 null 的字段
```csharp
class T {
    public int id { get; set; }
    public string name { get; set; }
    public string other { get; set; }
}
var item = new T { id = 1, name = "xx" };
fsql.GetRepository<T>().AttachOnlyPrimary(item).Update(item); //只更新 name
```
- 修复 Lambda 表达式中 DateTime.Now.ToString("yyyyMMdd") 不能直接执行的 bug;
This commit is contained in:
28810
2019-09-18 16:58:13 +08:00
parent 52450dc08a
commit 8d92ccd751
24 changed files with 92 additions and 24 deletions

View File

@ -37,9 +37,13 @@ namespace FreeSql.Tests
repos.Attach(item);
item.Title = "xxx";
repos.Update(item);
repos.Update(item); //<2F><><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4> UPDATE "AddUpdateInfo" SET "Title" = 'xxx' WHERE("Id" = '1942fb53-9700-411d-8895-ce4cecdf3257')
Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(item));
repos.Update(item); //<2F><><EFBFBD>в<EFBFBD>ִ<EFBFBD><D6B4> SQL<51><4C>δ<EFBFBD>
repos.AttachOnlyPrimary(item).Update(item); //<2F><><EFBFBD>и<EFBFBD><D0B8><EFBFBD>״ֵ̬<CCAC><D6B5>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ڣ<EFBFBD>ִ<EFBFBD>и<EFBFBD><D0B8><EFBFBD> set title = xxx
Console.WriteLine(repos.UpdateDiy.Where(a => a.Id == item.Id).Set(a => a.Clicks + 1).ToSql());
repos.UpdateDiy.Where(a => a.Id == item.Id).Set(a => a.Clicks + 1).ExecuteAffrows();