种子正在清除现有数据

Seed is wiping out existing data

我有一个 table 固定行数,51 行对应每个美国州加上哥伦比亚特区。除了 StateCode 列之外,还有一些每个州的数据。但是行数不会改变。

StateCode    DataColum1    DataColumn2   etc

为数据库播种后,如果不存在,我需要用 51 行填充 table。但如果他们这样做,我需要单独留下 table。

我目前的做法是每次执行 database-update.

时都会清除所有数据
context.StateLeadSettings.AddOrUpdate(s => s.StateCode,
    new StateLeadSettings() { StateCode = "AK" },
    ....
 );

不确定如何更改此设置,因此它仅在它们不存在时添加。

试试这个逻辑:

var stateLeadSettings = new List<StateLeadSettings>{
    new StateLeadSettings() { StateCode = "AK" },
    ....
};
var codes = stateLeadSettings.Select(x => x.StateCode).ToList();
var existed = context.StateLeadSettings.Where(x => codes.Contains(x.StateCode))
                .Select(x => x.StateCode).ToList();
context.StateLeadSettings.AddRange(stateLeadSettings
                .Where(x => !existed.Contains(x.StateCode)).ToList());
context.SaveChanges();