mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 04:18:16 +08:00
- 增加 IInsertOrUpdate.SetSource(items, tempPrimarys) 指定临时主键参数;#1160
This commit is contained in:
@ -373,11 +373,10 @@ WHEN NOT MATCHED THEN
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void InsertOrUpdate_OnColumns()
|
||||
public void InsertOrUpdate_TempPrimarys()
|
||||
{
|
||||
var iou = fsql.InsertOrUpdate<tbiou03>()
|
||||
.SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "001" }, new tbiou03 { id1 = 2, id2 = "02", name = "002" }, new tbiou03 { id1 = 3, id2 = "03", name = "003" }, new tbiou03 { id1 = 4, id2 = "04", name = "004" } })
|
||||
.OnColumns("name");
|
||||
.SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "001" }, new tbiou03 { id1 = 2, id2 = "02", name = "002" }, new tbiou03 { id1 = 3, id2 = "03", name = "003" }, new tbiou03 { id1 = 4, id2 = "04", name = "004" } }, a => a.name);
|
||||
var sql = iou.ToSql();
|
||||
Assert.Equal(@"MERGE INTO [tbiou03] t1
|
||||
USING (SELECT 1 as [id1], N'01' as [id2], N'001' as [name]
|
||||
@ -388,7 +387,7 @@ UNION ALL
|
||||
UNION ALL
|
||||
SELECT 4, N'04', N'004' ) t2 ON (t1.[name] = t2.[name])
|
||||
WHEN MATCHED THEN
|
||||
update set [name] = t2.[name]
|
||||
update set [id1] = t2.[id1], [id2] = t2.[id2]
|
||||
WHEN NOT MATCHED THEN
|
||||
insert ([id1], [id2], [name])
|
||||
values (t2.[id1], t2.[id2], t2.[name]);", sql);
|
||||
|
Reference in New Issue
Block a user