我有一个可怕的时间试图让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