dotnetcore / dotnetcore/FreeSql

fsql.InsertOrUpdate<User>() .SetSource(user,a=> a.Id) .IfExistsDoNothing() .ExecuteAffrowsAsync(); 不重复的数据也没有插入

Open
#2,069 8 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
4.4k
Forks
910
PR merge metrics
No merged PRs in 30d

Description

#### 问题描述及重现代码:

完整代码
```c#
// See https://aka.ms/new-console-template for more information

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using FreeSql;
using FreeSql.DataAnnotations;
public class User
{
[Column(IsIdentity = true, IsPrimary = true)]
public int Id { get; set; }
public required string Name { get; set; }
public string? NickName { get;set; } = "默认昵称";
}

namespace ConsoleApp2
{
public class Program
{
public static async Task Main(string[] args)
{
using var host = Host.CreateDefaultBuilder(args)
.ConfigureServices((context, services) =>
{
var fsql = new FreeSql.FreeSqlBuilder()
.UseConnectionString(FreeSql.DataType.Sqlite,
"Data Source=./test.db;Pooling=true;Max Pool Size=10")
.UseAutoSyncStructure(true)
.Build();
services.AddSingleton(fsql);
}).Build();


var fsql = host.Services.GetRequiredService();

await fsql.Delete().
Where(a => true).ExecuteAffrowsAsync();

var user = new User()
{
Name = "张三",
NickName = "张三的昵称"
};
await fsql.InsertOrUpdate()
.SetSource(user,a=> a.Id)
.IfExistsDoNothing()
.ExecuteAffrowsAsync();

var user2 = new User()
{
Name = "李四",
NickName = "李四的昵称"
};
await fsql.InsertOrUpdate()
.SetSource(user2,a=> a.Id)
.IfExistsDoNothing()
.ExecuteAffrowsAsync();

var user1 = await fsql.Select().ToListAsync();
foreach (var u in user1)
{
Console.WriteLine($"Id: {u.Id}, Name: {u.Name}, NickName: {u.NickName}");
}
}
}

}

```

#### 数据库版本
sqlite3

#### 安装的Nuget包
> FreeSql 3.5.210 3.5.210
> FreeSql.Provider.Sqlite 3.5.210 3.5.210

#### .net framework/. net core? 及具体版本
.net core9。

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.