我有一个看起来像实体的MSSQL表
IdMarker Property1 Property2 ...
411 AAA BBB
567 CCC DDD
...
我只需要在此表中存储唯一的IdMarkers
。从实体集中添加新条目的最有效方式是什么,但是,使用Entity Framework Core仅添加表中尚不存在的IdMarker
值的条目(简而言之,我想实现行为与REPLACE
在MySQL方言中的作用类似)?
如果我理解正确,这是我的问题-
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函数与您的问题无关(如果我正确理解的话)