這是從這裏開始的後續工作 - >multiple-sorting-on-linq-nested-method。嵌套的LINQ方法拋出`不支持...`異常
基本上,在let memberName = ...
它拋出這個異常Method 'System.String MemberName(Int32)' has no supported translation to SQL.
,我沒有找出解決方案。
此外,BLLCmo
和BLLConnect
實際使用兩個不同數據庫間。原來的應用程序(不是我的)使用4個獨立的數據庫的,所以我試圖做出應有的。
BLLCmo.cs
public static DataTable GetAllMembers(Guid workerID)
{
var AllEnrollees = from enrollment in context.tblCMOEnrollments
where enrollment.CMOSocialWorkerID == workerID || enrollment.CMONurseID == workerID
join supportWorker in context.tblSupportWorkers on enrollment.EconomicSupportWorkerID equals supportWorker.SupportWorkerID into workerGroup
from worker in workerGroup.DefaultIfEmpty()
let memberName = BLLConnect.MemberName(enrollment.ClientID)
orderby enrollment.DisenrollmentDate ascending, memberName ascending
select new
{
enrollment.ClientID,
MemberName = memberName,
NurseName = BLLAspnetdb.NurseName(enrollment.CMONurseID),
SocialWorkerName =BLLAspnetdb.SocialWorkerName(enrollment.CMOSocialWorkerID),
enrollment.DisenrollmentDate,
enrollment.EnrollmentDate,
ESFirstName = worker.FirstName,
ESLastName = worker.LastName,
ESPhone = worker.Phone
};
var dataTable = AllEnrollees.CopyLinqToDataTable();
return dataTable;
}
BLLConnect.cs
public static String MemberName(Int32 personID)
{
var memberName = from person in context.tblPersons
where person.PersonID == personID
select person.FirstName + " " + person.LastName;
return memberName.SingleOrDefault();
}
沒有什麼不妥表明您已經試過那並不是什麼沒有工作。它可以節省我們所有的時間,並且/或者我們可能知道使「近乎工作」的版本變成「正常工作」的缺失的魔術字。 – 2009-10-07 21:04:35
我會牢記這一點。謝謝馬克 – 2009-10-07 21:05:52