仅将新行添加到MSSQL和Entity Framework Core中的表的最有效方法

问题描述 投票:0回答:1

我有一个看起来像实体的MSSQL表

IdMarker Property1 Property2 ...
411       AAA      BBB
567       CCC      DDD
...

我只需要在此表中存储唯一的IdMarkers。从实体集中添加新条目的最有效方式是什么,但是,使用Entity Framework Core仅添加表中尚不存在的IdMarker值的条目(简而言之,我想实现行为与REPLACE在MySQL方言中的作用类似)?

sql-server entity-framework-core
1个回答
0
投票

如果我理解正确,这是我的问题-

create table dataset1
( 
   IdMarker int,
   property1 varchar(10),
   property2 varchar(10)
)

create table dataset2
( 
    IdMarker int,
    property1 varchar(10),
    property2 varchar(10)
)

insert into dataset1 values (411, 'aaa', 'bbb')
insert into dataset1 values (413, 'abb', 'baa')


insert into dataset2 values (411, 'aaa', 'bbb')
insert into dataset2 values (411, 'aaa', 'bbb')
insert into dataset2 values (411, 'aaa', 'bbb')
insert into dataset2 values (412, 'aab', 'bba')
insert into dataset2 values (413, 'abb', 'baa')
insert into dataset2 values (413, 'abb', 'baa')
insert into dataset2 values (414, 'bb', 'aa')
insert into dataset2 values (415, 'a', 'b')
insert into dataset2 values (416, 'aba', 'aba')
insert into dataset2 values (416, 'aba', 'aba')
insert into dataset2 values (417, 'c', 'c')

现在,我将从数据集2中选择所有尚未在数据集1中出现的唯一记录,并将其插入到数据集1中。这是查询-

insert into dataset1 select * from dataset2 EXCEPT select * from dataset1 

P.S-请勿使用*并使用列名。将其更改为linq查询。MySQL REPLACE函数与您的问题无关(如果我正确理解的话)

© www.soinside.com 2019 - 2024. All rights reserved.