タイトルで申し訳ありませんが、明確なタイトルを思い付く方法がわかりません。とにかく、私の問題を説明する必要があります。
フルネームで指定された特定の学生を検索するクエリを作成しました。
SQL バージョン:
SELECT * FROM Student as s WHERE concat(s.lastname,', ',s.firstname,' ',s.middlename) = myvalue
string.concat と string.join を使用して linq クエリに変換しようと何度も試みましたが、エラーが発生します。
LINQ to Entities はメソッド 'System.String Concat(System.Object[])' メソッドを認識せず、このメソッドはストア式に変換できません。
多分誰かが助けることができます。ありがとう!
学生:
public class Student{
public int StudentID { get; set; }
public string Firstname { get; set; }
public string Middlename { get; set; }
public string Lastname { get; set; }
public ...
}
そして私のlinqクエリ:
public void FindStudent(string fullname){
using(MyContext _ctx = new MyContext()){
var _query = from stud in _ctx.Student
where string.concat(stud.Lastname.Trim(),' ',stud.Firstname.Trim(),' ',stud.Middlename.Trim()) == fullname
select new{
StudentID = stud.StudentID,
Firstname = stud.Firstname,
Middlename = stud.Middlename,
Lastname = stud.Lastname
}
}
}