我想使用實體框架在兩個sql字段中搜索名和姓。下面是一些示例代碼,我將搜索searchString作爲名字和姓氏數據庫字符串的連接。如何查詢連接字段?
using(var ent = new testEntities)
{
ent.Contacts.Where(u => (u.firstname + ' ' + u.lastname).contains(searchString))
}
搜索一個領域是容易的,但我怎麼能查詢字符串這是兩個數據庫字段的串聯。
我想使用實體框架在兩個sql字段中搜索名和姓。下面是一些示例代碼,我將搜索searchString作爲名字和姓氏數據庫字符串的連接。如何查詢連接字段?
using(var ent = new testEntities)
{
ent.Contacts.Where(u => (u.firstname + ' ' + u.lastname).contains(searchString))
}
搜索一個領域是容易的,但我怎麼能查詢字符串這是兩個數據庫字段的串聯。
從評論: [我得到一個錯誤]關於無法創建
char
類型的恆定值。
表達式的問題是您在第一個字符串和第二個字符串之間添加空格的方式。 EF知道如何字符串連接轉換爲SQL,但它不知道如何字符串類型和空間' '
,char
類型的恆定的場之間進行轉換+
。
用u.firstname + " " + u.lastname
替換連接表達式將解決該問題,因爲空間" "
現在是字符串文字,而不是char
常量。
替換下面的代碼代碼,可以幫助你,我認爲。
using(var ent = new testEntities)
{
ent.Contacts.Where(u => (u.firstname + " " + u.lastname).contains(searchString))
}
我不認爲把''''改成''''會有什麼區別。如果是這樣,*爲什麼*做到了? –
它確實但dasblinkenlight實際上得到了答案的權利第一! –
@PiotrStulinski但我沒有閱讀dasblinkenlight的評論..對不起,但我也爲你嘗試 – ADMIN
當你嘗試你的代碼時,你有任何錯誤嗎? – dasblinkenlight
是的。有些無法創建類型char的常量值。 –
試試'u.firstname +「」+ u.lastname'然後:-) – dasblinkenlight