当我在 LinqPad 中运行以下代码时:
var ProductIds = from p in Products
where p.Id = "F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F"
select p;
ProductIds.Dump();
它给了我:
无法隐式将类型“string”转换为“System.Guid”
我不知道应该如何正确地将其转换为Guid,可能需要进行适当的强制转换。
当我在 LinqPad 中运行以下代码时:
var ProductIds = from p in Products
where p.Id = "F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F"
select p;
ProductIds.Dump();
它给了我:
无法隐式将类型“string”转换为“System.Guid”
我不知道应该如何正确地将其转换为Guid,可能需要进行适当的强制转换。
尝试使用 Guid.Parse(string guid)
静态方法。
var ProductIds = from p in Products
where p.Id == Guid.Parse("F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F")
select p;
ProductIds.Dump();
您目前有一个任务,但是您想要进行比较-请使用==
而不是=
:
var ProductIds = from p in Products
where p.Id == Guid.Parse("F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F")
select p;
您还可以使用以下方法来设置一个变量:
Guid guid = new Guid ("F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F");
然后
var ProductIds = from p in Products
where p.Id == guid
select p;
ProductIds.Dump();
你不能强制转换它,你必须像这样解析它:
where p.Id = Guid.Parse("F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F");
Guid.Parse("F1FE990C-4525-4BFE-9E2C-A7AFFF0DDA1F").CompareTo(p.Id) = 0
。 - Fischermaen
p.Id
和您的Guid.Parse()
语句时使用==
,而不是单个=
。 - Nathan Anderson'System.Guid' 不包含 'Parse' 的定义
。 - Ravi Ram