Linq to SQL, исключение : для метода string. contains поддерживаются только параметры, которые могут быть вычислены на клиенте
всем привет:
Я встретил вопрос, который позволяет мне быть обеспокоенным сегодня, хотя он не может произвести изменение положения строки кода, я хочу знать, почему это происходит.
Шаги:
1. Я использовать LINQ для получения данных из базы данных, пример кода:
Цитата:var ret = (из c в getComment
присоединяйтесь к CR в контексте.Предстанет перед судом&ЛТ;commentreply и GT;() на C.Идентификатор равен КЛ.CommentID в АСБ
присоединяйтесь к оу в контексте.Предстанет перед судом&ЛТ;ownercomment и GT;() на C.Идентификатор равен ОС.CommentID в ОК
из cr1 в crs. DefaultIfEmpty()
где c. EnumDataEntityStatus == EnumDataEntityStatus.Обычный || IsForUserInfoSearch
из oc1 в ocs. DefaultIfEmpty()
где c. EnumDataEntityStatus == EnumDataEntityStatus.Обычный || IsForUserInfoSearch
выберите new CommentSearchModel { comment = c, reply = cr1, ownerComment = oc1 });
2. там две строчки кода, а и Б, и , там много "LINQ в предложении, где" код строки в передней части A и B.
А есть
ret = ret.Where(P => P.comment.OrderNumber.Contains(req.OrderNumber.Trim()));
Б есть
var excludeIDList = ret.Where(q => ((now - q.comment.CheckOutDate.Date).TotalDays > 30 && q.comment.EnumCommentStatus == 0 && q.comment.EnumOwnerCommentedStatus == 0) || q.comment.EnumCommentStatus == EnumCommentStatus.Expired).Select(x => x.comment.ID); if (req.SpecificCondition == EnumSpecificQueryCondition.AllForMerchant) ret = ret.Where(q => !excludeIDList .Contains(q.comment.ID));
B выполняется, после чего будет создан новый объект "
{System.Data.Linq.DataQuery<TuJia.Business.Customer.Contract.CommentSearchModel>}" .
3. вопрос:
Если A находится перед B, как выполнить ret. toList (), будет создано исключение.
Если B находится впереди A, то при выполнении ret. toList () будет создано исключение.
4. Исключение:
поскольку я использую китайскую операционную систему, мои исключения-китайские, я переведу их на английский, но, возможно, это будет неправильно.
Исключение:
Цитата:Для метода String.Содержит, поддерживаются только параметры, которые могут быть оценены на клиенте
Китайский:
内容:对于方法 String.Contains,只支持可在客户端上求值的参数
5. Наконец, я надеюсь, что каждый может предоставить мне какую-либо информацию об этом, я хочу знать причину, по которой производят исключение.
Цитата:Заранее спасибо!
Что я уже пробовал:
<pre lang="c#">