2

こんにちは、私はこのクエリを持っています...

List<VisitorsVo> lstVisitors = new List<VisitorsVo>();
            var predicate = ReturnPredicateForVisitors(p_htVisitor);
            if (predicate != null)
            {
                lstVisitors = (from n in context.TBL_VISITORs.Where(predicate)
                               select new VisitorsVo
                               {
                                   VisitId = n.VISIT_ID,
                                   VisitorName = n.VISITOR_NAME,
                                   ResidentDuration = n.ENQUIRY_PATIENT_DURATION.Split(';')[0] + " " + n.ENQUIRY_PATIENT_DURATION.Split(';')[1],
                               }).ToList();
            }

しかし、認識されていない式ノードのArrayIndexエラーが発生しています。どうすれば克服できますか...ここでは、述語を使用している場所の状態を確認しています....

4

2 に答える 2

4

これは、単純な LINQ ではなく、エンティティへの LINQ のようです。contextEntity Framework または LINQ to SQL コンテキストですか?

その場合、LINQ to Entities/SQL はこの式を SQL に変換しようとしますが、不明な関数呼び出しや同等の SQL がない関数呼び出しが含まれている場合は変換できません。

私のお金はSplit();の使用にあります。私はそのLINQ to Entitiesがそれに賭けるに違いない。

あなたができることは、クエリを変更しSplit()Split().

于 2013-01-03T10:55:07.387 に答える
0

列を分割する必要がある場合は、そのデータを 2 つの別々の列に保持できることを意味します。

私があなただったら、データベース設計に行き、ENQUIRY_PATIENT_DURATION を 2 つの列に変換して、適切に実行します。あなたのコードは非常にエラーが発生しやすいようです。

于 2013-01-03T15:17:27.747 に答える