我想通過一個GUID作爲一個字符串通過web服務,但是我在路上碰到了一個凹凸。 GUID作爲UNIQUEIDENTIFIER
存儲在SQL Server中,EF將其作爲GUID進行提取。我希望做的是我的查詢做到這一點:轉換guid到實體框架的字符串
var query = myEntities.Foo.Where(q => q.Id== Id)
.Select(bar =>
new Bar()
{ BString = bar.GUID }
);
現在,C#拋出,你不能轉換System.Guid
到string
生成錯誤,所以我認爲你可以這樣做:
{ BString = bar.GUID.ToString() }
甚至
{ BString = Convert.ToString(bar.GUID) }
但兩端與運行時異常:
有一個例外,它是System.NotSupportedException:LINQ到 實體無法識別方法'System.String ToString(System.Object)'方法,並且此方法不能將 轉換爲存儲表達式。
所以我推測,在這兩種情況下,它不能夠找出一個T-SQL相當於去從UniqueIdentifier
到varchar
。
除了檢索對象,然後遍歷我的返回集,將每個對象複製到一個新的對象並在那一點轉換guid->字符串,是否有解決方法?
謝謝。
這裏有一個解決方法。讓你的bar類型有一個屬性返回它的Guid作爲字符串,然後在你的Linq查詢中使用這個屬性 – Beatles1692 2012-02-20 15:46:20
lambda語句執行後查詢的值是什麼。 – MethodMan 2012-02-20 15:47:04