내가 찾은 최고의 솔루션은 계속해서 ::와 같은 결과를 생성하는 SQL에서 테이블 반환 함수를 만드는 것입니다.
CREATE function [dbo].[getMatches](@textStr nvarchar(50)) returns @MatchTbl table(
Fullname nvarchar(50) null,
ID nvarchar(50) null
)
as begin
declare @SearchStr nvarchar(50);
set @SearchStr = '%' + @textStr + '%';
insert into @MatchTbl
select (LName + ', ' + FName + ' ' + MName) AS FullName, ID = ID from employees where LName like @SearchStr;
return;
end
GO
select * from dbo.getMatches('j')
그런 다음 함수를 LINQ.dbml 디자이너로 끌어서 다른 개체처럼 호출하면됩니다. LINQ는 저장된 함수의 열도 알고 있습니다. 나는 이것을 이렇게 부른다 ::
Dim db As New NobleLINQ
Dim LNameSearch As String = txt_searchLName.Text
Dim hlink As HyperLink
For Each ee In db.getMatches(LNameSearch)
hlink = New HyperLink With {.Text = ee.Fullname & "<br />", .NavigateUrl = "?ID=" & ee.ID}
pnl_results.Controls.Add(hlink)
Next
놀랍도록 간단하고 애플리케이션에서 SQL 및 LINQ의 강력한 기능을 활용합니다. 물론 동일한 효과를 위해 원하는 테이블 값 함수를 생성 할 수 있습니다!