Для Linq To Sql вы не хотите ни того, ни другого. Вместо этого используйте Object.Equals: .Where(b => Object.Equals(b.BoodschapID, id)
Почему? Из-за ошибки в генераторе SQL, если id является обнуляемым уникальным идентификатором. Если при использовании b.BoodschapID.Equals (id) или b.BoodschapID == id и b.BoodschapID получен обнуляемый Guid, сгенерированный SQL будет не WHERE BoodschapID IS NULL
, а скорее WHERE BoodschapID = @p0
, который не вернет никаких результатов. 1006 *
Я точно знаю, что EF имел ту же ошибку. Не знаю, решено ли это еще. Вы можете найти более подробную информацию в этом вопросе , просто имейте в виду, что некоторые ответы порождают ужасающий SQL.
Кроме того, нет никакой разницы между Equals и == в Linq To SQL, о которых я знаю.