2014-07-03 25 views
3

我有一個方法試圖從我的數據庫用一個簡單的where子句拉記錄。我有一個問題,因爲我傳遞一個字符串值並將其與Guid(uniqueIdentifier)進行匹配。我需要傳遞的值作爲一個字符串綁定在DataGrid中,我需要該方法返回一個字符串。Linq查詢中的Guid.ToString()?

很顯然,在運行時,LinQ無法編譯查詢。 .ToString()方法無法編譯到SQL中。有任何想法嗎?

private string getFileLocation(string LinkGuid) 
{ 
    try 
    { 
     ISESEntities context = new ISESEntities(); 

     string query = (from f in context.tbFileAttachments 
       where f.CCCPGUID.ToString() == LinkGuid 
       select f.FileLocation).First(); 

     return query;   
    } 
    catch(Exception e) 
    { 
     blah blah 
    } 
} 

回答

7

開關使用你的邏輯和轉換LinkGuid參數設置爲一個GUID:

private string getFileLocation(string LinkGuid) 
{ 
    try 
    { 
     Guid search = Guid.Parse(LinkGuid); 

     ISESEntities context = new ISESEntities(); 

     string query = (from f in context.tbFileAttachments 
       where f.CCCPGUID == search 
       select f.FileLocation).First(); 

     return query;   
    } 
    catch(Exception e) 
    { 
     blah blah 
    } 
} 
+0

十分感謝球員。 Guid.Parse()方法,非常有用:) – Hardgraf

1

也許,LINQ提供程序不知道如何ToStringGuid屬性到SQL查詢轉換。我會用Guid對象進行比較,樣品:

Entities context = new ISESEntities(); 

Guid linkGuid = Guid.Parse(LinkGuid); 

string query = (from f in context.tbFileAttachments 
       where f.CCCPGUID == linkGuid 
       select f.FileLocation).First(); 

return query;   
2

而是在Guid場致電ToString,你的參數字符串轉換成GUID,並隨後通過在查詢:

Guid parameterGuid = Guid.Parse(LinkGuid); 
string query = (from f in context.tbFileAttachments 
       where f.CCCPGUID == parameterGuid 
       select f.FileLocation).First();