我有一個可怕的時間試圖讓LINQ語句工作。LINQ:「枚舉沒有結果」
我一直在使用下面這篇文章既SQL語法和拉姆達嘗試:
C# Joins/Where with Linq and Lambda
這是我工作的SQL的樣子:
SELECT ws_lookup_OccupationGroup.Code
FROM ws_lookup_OccupationGroup
INNER JOIN ws_lookup_Occupation ON
ws_lookup_OccupationGroup.Code = ws_lookup_Occupation.ws_lookup_OccupationGroup_Code
WHERE (ws_lookup_Occupation.Code = N'413')
這是我第一次嘗試,它產生沒有結果:
var query = from occupationGroup in db.ws_lookup_OccupationGroups
join occupations in db.ws_lookup_Occupations on occupationGroup.Code equals occupations.Code
where occupations.Code == model.Client.Client_Details_Enhanced.Occupation.Code
select new
{
OccupationGroup = occupationGroup,
Occupations = occupations
};
這是我的第二個嘗試使用Lamdba這也產生任何結果:
var queryLambda = db.ws_lookup_OccupationGroups
.Join(db.ws_lookup_Occupations,
occupation => occupation.Code,
occupationGroup => occupationGroup.Code,
(occupation, occupationGroup) => new
{
OCCUPATION = occupation,
OCCUPATIONGROUP = occupationGroup
})
.Where(all => all.OCCUPATION.Code == model.Client.Client_Details_Enhanced.Occupation.Code);
我看不出什麼錯誤......
我不知道是該有什麼意義,但我使用的代碼第一次實體框架 - 他是我的OccupationGroups &職業型號:
public class ws_lookup_OccupationGroup {
[Key]
[MaxLength(250)]
public string Code { get; set; }
[MaxLength(250)]
public string Name { get; set; }
public int SortOrder { get; set; }
public List<ws_lookup_Occupation> Occupations { get; set; }
}
public class ws_lookup_Occupation {
[Key]
[MaxLength(10)]
public string Code { get; set; }
[MaxLength(250)]
public string Name { get; set; }
[MaxLength(250)]
public string BarbadosMotorFactor { get; set; }
[MaxLength(250)]
public string TrinidadMotorFactor { get; set; }
[MaxLength(250)]
public string OtherRegionsMotorFactor { get; set; }
}
您是否試過硬編碼值爲413而不是'model.Client.Client_Details_Enhanced.Occupation.Code'的語句? – CSL
剛剛嘗試過 - 沒有得到任何結果:( –
)你的查詢的兩個版本看起來都是正確的。你有沒有對數據庫進行剖析以查看實際發佈了哪些SQL? – Jamiec