Вы не можете сравнивать Guid со строкой напрямую. Преобразуйте строку в Guid или Guid в строку.
Преобразовать Guid в строку так же просто, как вызвать .ToString()
для переменной, но важно знать, что существует несколько способов форматирования Guid. Либо с тире, либо без:
someguid.ToString()
даст вам что-то вроде B06A6881-003B-4183-A8AB-39B51809F196
someGuid.ToString("N")
вернет что-то вроде B06A6881003B4183A8AB39B51809F196
Если вы решили преобразовать C.CustomerId
в строку, убедитесь, что вы знаете, в каком формате customerProfileId
находится.
Если это может быть любой формат, вам лучше преобразовать customerProfileId
в guid: new Guid(customerProfileId)
.
Недостатком этого является то, что преобразование строки в Guid вызовет исключение, если оно отформатировано неправильно. Таким образом, если вы получили customerProfileId
из пользовательского ввода (например, поля формы или URL), вы должны сначала проверить его.
Однако, если вы перенесете преобразование в Guid за пределы вашего запроса, вы, вероятно, получите более высокую производительность, поскольку сравнение Guids, вероятно, быстрее, чем сравнение строк.
var customerProfileGuid = new Guid(customerProfileId);
// wrap in try catch if needed
var accountQuery = from C in CustomerModel.CustomerProfile
where C.CustomerId == customerProfileGuid
select C;