У меня была та же проблема, и в итоге я изменил определение своего объекта, чтобы обойти эту проблему. Это полный взлом, но он позволяет мне заполнять данные прямо из запроса:
[DataContract]
public class DeviceInfo
{
public Guid DeviceGuid
{
set
{
DeviceID = value.ToString();
}
}
[DataMember]
public string DeviceID { get; set; }
}
И запрос работает так, как задумано, потому что он выполняет преобразование для чего-то другого:
devices.AddRange(from d in ae.UserDevices
select new DeviceInfo
{
DeviceGuid = d.DeviceID
}
Это делает объект немного более беспорядочным, но значительно облегчает работу с Guid в запросе.