dotnetcore / dotnetcore/FreeSql
fsql.InsertOrUpdate<User>() .SetSource(user,a=> a.Id) .IfExistsDoNothing() .ExecuteAffrowsAsync(); 不重复的数据也没有插入
- 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.