Если вы используете FirstOrDefault
вместо First
, это вернет null
, если совпадений нет.
Что касается того, нужно ли вам вставлять - просто запомните, было ли оно пустым для начала:
var a = dataContext.Things.FirstOrDefault(x => x.Name == something);
bool needsInsertion = (a == null);
a = a ?? new Thing { Name = something };
В качестве альтернативы, если в Thing
есть поле идентификатора, которое автоматически заполняется базой данных, вы можете просто использовать его для определения, находится ли оно уже в базе данных или нет.