Possible Bug with MySQL and Entity Framework
I've created a model from my existing MySQL database.
One object for instance is a contract which is related to several projects (table taskorder).
var query = from i in context.Projects
where i.Contract.ID == contract.ID
orderby i.Number
select i;
When I query the model using above statement the database will sometimes return several objects that are equal, although it should only return one.
The following statement is created by the provider:
SELECT
`Project1`.`C1`,
`Project1`.`anyproblems`,
`Project1`.`awarddatetaskorder`,
`Project1`.`created_at`,
`Project1`.`created_by`,
`Project1`.`datedeleted`,
`Project1`.`deleted`,
`Project1`.`donumber`,
`Project1`.`endawarddate`,
`Project1`.`id`,
`Project1`.`modified_at`,
`Project1`.`modified_by`,
`Project1`.`reasondeleted`,
`Project1`.`safetyproblems`,
`Project1`.`short_description`,
`Project1`.`site`,
`Project1`.`startawarddate`,
`Project1`.`taskorder_comments`,
`Project1`.`taskorder_initialcontractprice`,
`Project1`.`taskorder_internalcomments`,
`Project1`.`taskorder_ntp`,
`Project1`.`taskorder_performancetime`,
`Project1`.`taskorder_projectnumber`,
`Project1`.`taskorder_sitefinaldate`,
`Project1`.`town`,
`Project1`.`userdeleted`,
`Project1`.`address1`,
`Project1`.`address2`,
`Project1`.`street`,
`Project1`.`zip`,
`Project1`.`autocalculatetotal`,
`Project1`.`id1`,
`Project1`.`id2`,
`Project1`.`contract_ID`,
`Project1`.`psp_element`,
`Project1`.`country_id`,
`Project1`.`projectstatus_id`,
`Project1`.`visiblecurrency_id`,
`Project1`.`evaluation_id`,
`Project1`.`id3`
FROM (SELECT
`Extent1`.`address1`,
`Extent1`.`address2`,
`Extent1`.`anyproblems`,
`Extent1`.`autocalculatetotal`,
`Extent1`.`awarddatetaskorder`,
`Extent1`.`contract_ID`,
`Extent1`.`country_id`,
`Extent1`.`created_at`,
`Extent1`.`created_by`,
`Extent1`.`datedeleted`,
`Extent1`.`deleted`,
`Extent1`.`donumber`,
`Extent1`.`endawarddate`,
`Extent1`.`evaluation_id`,
`Extent1`.`id`,
`Extent1`.`modified_at`,
`Extent1`.`modified_by`,
`Extent1`.`projectstatus_id`,
`Extent1`.`psp_element`,
`Extent1`.`reasondeleted`,
`Extent1`.`safetyproblems`,
`Extent1`.`short_description`,
`Extent1`.`site`,
`Extent1`.`startawarddate`,
`Extent1`.`street`,
`Extent1`.`taskorder_comments`,
`Extent1`.`taskorder_initialcontractprice`,
`Extent1`.`taskorder_internalcomments`,
`Extent1`.`taskorder_ntp`,
`Extent1`.`taskorder_performancetime`,
`Extent1`.`taskorder_projectnumber`,
`Extent1`.`taskorder_sitefinaldate`,
`Extent1`.`town`,
`Extent1`.`userdeleted`,
`Extent1`.`visiblecurrency_id`,
`Extent1`.`zip`,
`Extent2`.`id` AS `id1`,
`Extent3`.`id` AS `id2`,
`Extent4`.`id` AS `id3`,
1 AS `C1`
FROM `taskorder` AS `Extent1` LEFT OUTER JOIN `level1` AS `Extent2` ON `Extent1`.`id` = `Extent2`.`projectnumber_id` LEFT OUTER JOIN `leveldefinitions` AS `Extent3` ON (`Extent3`.`projectnumber_id` IS NOT NULL) AND (`Extent1`.`id` = `Extent3`.`projectnumber_id`) LEFT OUTER JOIN `settingsreportlogos` AS `Extent4` ON (`Extent4`.`projectnumber_id` IS NOT NULL) AND (`Extent1`.`id` = `Extent4`.`projectnumber_id`)
WHERE `Extent1`.`contract_ID` = @p__linq__12) AS `Project1`
ORDER BY
`donumber` ASC