Прошло много времени с момента последнего обновления поста, но я думаю, что стоит улучшить решение.
По моему мнению, решения, опубликованные для этого конкретного сценария, не являются лучшим способом с точки зрения производительности для получения нужного вам идентификатора. Лучшее решение заключается в следующем.
db.Countries.Where(a=>a.DOTWInternalID == citee.CountryCode)
.Select(a => a.ID).FirstOrDefault();
Предыдущие statemants в основном запускают SQL-запрос, подобный следующему:
SELECT TOP (1) ID
FROM [dbo].[Countries]
WHERE DOTWInternalID = 123
Предлагаемые решения работают, но в основном делают "SELECT *"
, чтобы создать сущность со всеми значениями, а затем получить идентификатор из только что созданного объекта.
Вы можете использовать Linqpad , чтобы фактически увидеть сгенерированный SQL и настроить запросы LINQ или Lambdas.
Надеюсь, это поможет некоторым другим, которые доберутся до этого поста.