2012-09-06 10 views
1

我有MSSQL服務器中的字段「Name nvarchar(10)」 現在我試圖找到一些數據,我不能做區分大小寫的搜索。 即MVC3 C#+ MSSQL區分大小寫的字段

this.SomeTable.SingleOrDefault(u => (u.Name==login)); 

this.PortalUsers.SingleOrDefault(u => (u.Name.Equals(login)) 

返回一個值,但不應該,因爲 「AAAA」!= 「AAAA」 怎樣纔可以固定,而無需修改數據庫整理細胞?

+0

我應該假設您使用實體框架作爲ORM嗎? – JayC

+0

(也就是說,作爲訪問數據庫的方法?)ORM只是表示實體框架所執行的對象關係映射,但它不是唯一的對象關係映射器。 – JayC

+0

我將MSSQL中的排序規則更改爲區分大小寫,並且有所幫助。但是可能是沒有修改服務器端可以做到的? –

回答

0

不是一個好的解決方案,但是如果你不能更改MSSQL服務器,那麼你是有限的。

嘗試

this.PortalUsers.Where(u => u.Name == login).ToList().SingleOrDefault(u => u.Name == login) 

這將會把所有符合條件的記錄中不區分大小寫,將其轉換成存儲器陣列,然後挑選出一個單一的基礎上區分大小寫的匹配。

雖然這不是一個很好的解決方案,但我仍然要小心謹慎,它可能會返回必須在內存中創建的記錄的含義數目,沒有什麼太貴,但需要注意的地方。

Si