Обратите внимание, что вы фактически не отправляете эти изменения, и в идеале вы должны быть using
контекстом, чтобы гарантировать, что он получает Dispose()
d.
Оптимальный подход - в LINQ-to-SQL есть сбой, при котором наилучшим способом получения отдельной записи является использование методов Single(pred)
или SingleOrDefault(pred)
, поскольку эти методы используют диспетчер идентификации для первичной ключевые запросы. Значение: если вы спрашиваете джуты по первичному ключу, а контекст данных уже знает о записи, он не попадет в базу данных. Большинство других запросов do попадают в базу данных (включая .Where(pred).Single()
). Так что, если Name
является первичным ключом, я бы настроил:
db.SingleOrDefault(tag => tagName == tag.Name)
В этом случае это может не иметь большого значения (поскольку контекст, вероятно, не увидит этого), но полезно знать о нем.