0
我已经玩过实体框架和MySQL驱动程序。对不起,如果这是一个愚蠢的问题。表格广告对空缺职位PK有一个FK。这两个字段都标记为NOT NULL。我执行一个简单的连接:MySql,实体框架,内部联接生成空检查
var qry = (from vacancy in context.vacancies
join advert in context.adverts on vacancy.id equals advert.vacancies.id
where advert.status == 1
select
new
{
Id = advert.id
})
;
这将生成以下SQL:
SELECT 1 AS C1, Extent2.id FROM vacancies AS Extent1
INNER JOIN adverts AS Extent2 ON (Extent1.id = Extent2.vacancy_id) OR ((Extent1.id IS NULL) AND (Extent2.vacancy_id IS NULL))
WHERE 1 = Extent2.status
为什么EF生成“IS NULL”为连接条件,当列没有标记为可为空?
感谢,
鲍勃
砸 - 谢谢你克雷格。使用关系而不是联接删除了空检查。尽管如此,仍然不知道为什么为空的关系生成空检查 – bob 2010-07-30 13:34:58