ทางออกที่ดีที่สุดที่ฉันพบคือดำเนินการต่อและสร้างฟังก์ชัน Table-Valued ใน 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 ในแอปพลิเคชัน ... และแน่นอนคุณสามารถสร้างฟังก์ชันมูลค่าตารางใด ๆ ที่คุณต้องการสำหรับเอฟเฟกต์เดียวกัน!