0
は、私はこのようなSQLクエリを持っています:スプリット
var query = (from dd in db.Departments
where (
from D in db.Departments
join DP in db.DepartmentPersonnels on D.ID equals DP.DepartmentID
join P in db.Personnels on DP.PersonneID equals P.ID
where P.UserName == Username
select D.Code.Split(',').First()).Contains(dd.Code)
select dd).FirstOrDefault();
しかし、私はこのエラーを取得する:
LINQ to Entities does not recognize the method 'System.String[] Split(Char[])' method, and this method cannot be translated into a store expression.
この問題を解決するために多くの記事を読んでいますが、この問題を解決したものはありません。
誰かがこの問題の解決方法を説明できると非常に役に立ちます。
Thanks.Iがクエリ 'の下にクエリを使用:だからに
where
句を変更することも必要になる場合がありますDP.PersonneIDのPをdb.Personnelsに登録すると、P.ID となります。P.UserName ==ユーザ名 ddを選択します).FirstOrDefault(); string Code = query.Code.Split( '、')[0]; result =(dのdb.Departments ここでd.Code == Code select d).FirstOrDefault(); 'パフォーマンスの面でより優れていますか? –ええ、サブクエリが単一のレコードを返すことになっている場合、これは実行可能な解決策です。パフォーマンスはどうですか、あなたはそれをチェックしなければなりません(そういう人は普通、馬を走らせます:) –