내 응용 프로그램은 클라이언트가 서버에 특정 지역의 개체를 요청하는 클라이언트 - 서버 설정입니다. 서버 x와 y 좌표와 반경을 보냅니다. 그런 다음 서버는 지정된 영역의 개체에 대해 SQL Server 데이터베이스를 쿼리해야합니다. 데이터베이스에서 개체는 x 및 y 좌표로 저장됩니다.Linq To SQL의 간단한 절차
먼저 메서드를 WCF를 통해 서버에 전달 된 Region
개체에서 시도했습니다. 물론 메서드를 T-SQL로 변환 할 수 없어 작동하지 않습니다. 하지만 간단한 람다 표현식은 LINQ 쿼리에 사용되는 볼 수 있었다, 그래서 나는이 시도 :
Func<UniverseStationaryObject, RegionLocation, bool> contains =
(universeObject, location) => Math.Sqrt(
Math.Pow(universeObject.locationX - location.x, 2) +
Math.Pow(universeObject.locationY - location.y, 2)
) <= location.radius;
var objects = from o in dataContext.UniverseStationaryObjects
where contains.Invoke(o, Location)
select o;
불행히도,이 작동하지 않았다 중 - 나는 일부 기능은 SQL 쿼리 Linq에 허용됩니다 읽었습니다 ,하지만 수학 함수가 그들 사이에 있지 않나요? 이를 위해 저장된 함수가 필요합니까? 저장된 함수는 어떻게 생겼을까요? (필자는 T-SQL로 작성한 적이 없다)? 함수에 C# 객체를 전달하고 db 서버에 전달할 모든 값을 추출하지 않아도됩니까? 내 말은, linq-to-sql 클래스 디자이너에 저장된 함수를 추가 할 때 객체를 허용하고 그 시점에서 값을 추출 할 수 있습니까?
모든 개체를 검색하여 C#으로 필터링하는 옵션은 아닙니다.
우, 멋진 :) 슬프게도 내가 나서서 이미 저장 기능을 할 :(하지만이 시도거야 방법을 배웠습니다 너무 –