在我的Person表中是存儲位置ID的RequestedLocation列。這些ID與Locations表中的LocationId列匹配,Locations表中也包含LocatioName列中的文本位置名稱。LINQ to Entities使用MVC應用程序中的聯接方法進行查詢
在我看來,我需要在視圖中顯示字符串LocationName,並將Person模型傳遞給它。該視圖將顯示電子網格中的人員列表。正常情況下,它的效果很好,除了RequestedLocation列是所有整數。
我使用包含LINQ查詢的方法填充所有網格。下面是當前工作的方法:
public List<Person> GetPeople()
{
var query = from p in _DB.Person.ToList()
select p;
return query.ToList();
}
這裏是常規的SQL查詢工作,我需要轉換成LINQ:
SELECT ApplicantID
,FirstName
,LastName
,MiddleName
,DateofBirth
,Gender
,RequestedVolunteerRole
,RequestedVolunteerLocation
,l.LocationName
FROM Form.Person p
JOIN dbo.Location l ON p.RequestedVolunteerLocation = l.LocationID
Order BY ApplicantID
這是我試圖轉換爲LINQ:
public List<NewApplicantViewModel> GetPeople()
{
var query = from pl in _DB.Person.ToList()
join l in _Elig_DB.Locations.ToList() on pl.RequestedVolunteerLocation equals l.LocationID
select new
{
pl.RequestedVolunteerLocation = l.LocationName
};
return query.ToList();
我從這個得到錯誤的數量雖多,但大多數是沿着線:
Cannot convert from type Annonymous to Type List<NewAPplicantModel>
和
Invalid annonymous type declarator.
請幫幫忙,並感謝您閱讀我的文章。
哦,而且我只編了幾個月的編程,所以如果我對這一切都做錯了,請告訴我。我唯一需要堅持的是表格結構,因爲它是我正在更新的現有應用程序,更改位置或人員表格會產生很大的後果。
您正在選擇一個匿名類'select new {foo = bar}',創建這些列表並嘗試返回該列表。你必須返回一個'NewApplicantViewModel'列表 –