C #: как посмотреть, есть ли сущность Linq2SQL в базе данных - PullRequest
5 голосов
/ 02 июня 2009

Я хотел бы проверить, добавлен ли объект в базу данных. Итак, как я могу увидеть эту разницу между a и b?

var a = dataContext.Things.First(x => x.Name == something);
var b = new Thing { Name = something };

Чтобы было понятнее, если у меня есть это:

var thing = dataContext.Things.FirstOrDefault(x => x.Name == something) 
            ?? new Thing { Name = something };

Как узнать, нужно ли вставить thing?

1 Ответ

4 голосов
/ 02 июня 2009

Если вы используете FirstOrDefault вместо First, это вернет null, если совпадений нет.

Что касается того, нужно ли вам вставлять - просто запомните, было ли оно пустым для начала:

var a = dataContext.Things.FirstOrDefault(x => x.Name == something);
bool needsInsertion = (a == null);
a = a ?? new Thing { Name = something }; 

В качестве альтернативы, если в Thing есть поле идентификатора, которое автоматически заполняется базой данных, вы можете просто использовать его для определения, находится ли оно уже в базе данных или нет.

...