당신은 체인 중 하나 Add
년대, 또는 두 InsensitiveLike
와 Restrictions.Or
을 사용할 수 있어야 '의 수의 : 나는 순간하지만 내가 할 것입니다 방법은 메모리에서이 테스트를 드릴 수 없습니다
query.Add(Restrictions.InsensitiveLike(Projections.Property<Order>(a => a.OrderId1), OrderId2, MatchMode.Anywhere))
.Add(Restrictions.InsensitiveLike(Projections.Property<Order>(a => a.OrderId2), OrderId1, MatchMode.Anywhere));
// ... or ...
query.Add(
Restrictions.Or(
Restrictions.InsensitiveLike(Projections.Property<Order>(a => a.OrderId1), OrderId2, MatchMode.Anywhere,
Restrictions.InsensitiveLike(Projections.Property<Order>(a => a.OrderId2), OrderId1, MatchMode.Anywhere
)
);
그것.
편집 : 귀하의 의견에 대한 응답으로, 당신은 그냥 멀리 형식 안전 API에서 이동하고 일부 문자열을 사용할 수 있습니다. Expression.Like 방법은 .. 문자열 값 속성 이름에 대한 과부하를 가지고 아마 이런 일이 (I가 필요하지 않았더라도)
query.Add(Restrictions.InsensitiveLike(Projections.Property<Order>(a => a.OrderId1), OrderId2, MatchMode.Anywhere))
.Add(Expression.Like(OrderId2.ToString(), string.Concat("%", Projections.Property<Order>(a => a.OrderId1), "%")));
당신이 그리고 거기에서뿐만 아니라를 추가해야 할 수 있습니다를? :.
OrderId2가 Order의 속성이 아니라고 지정해야합니다. 내 원래 게시물을 업데이 트했습니다 – getit
내 대답을 editted있다. –
고마워,하지만 여전히 작동하지 않습니다. 컴파일하지만, 예를 들어 "a"와 같은 검색 문자열을 사용하면 다음 오류가 발생합니다. 속성을 확인할 수 없습니다 : 'a'중 : Order – getit