linq - Entity Framework returns wrong data after execution of two similar queries -


i have 2 similar queries, first one:

var activatedserialnumbers = (from activation in entities.activations                               !canceledactivationsids.contains(activation.id)                               activation.customerid == customerid                               join licenseconfiguration in entities.licenseconfigurations                                               on activation.id equals licenseconfiguration.activationid                               licenseconfiguration.productid == productid                               join activatedserialnumber in entities.activatedserialnumbers                                               on activation.id equals activatedserialnumber.activationid                              deactivatedsams.all(dsn => dsn.tolower() !=                                                activatedserialnumber.name.tolower())                              select new samwithlicense                              {                                      name = activatedserialnumber.name,                                      features = licenseconfiguration.licensefeatures                              }).tolist(); 

the second:

var activationsforsam = (from activation in entities.activations                         !canceledactivationsids.contains(activation.id)                         activation.customerid == customerid                         let activatedserialnumbers = activation.activatedserialnumbers                                                     .select(sn => sn.name.tolower())                         activatedserialnumbers.contains(loweredsn)                         join licenseconfiguration in entities.licenseconfigurations                                              on activation.id equals activatedproduct.activationid                         select new samwithlicense                         {                                    name = selectedserialnumber,                                    features = licenseconfiguration.licensefeatures                         }).tolist(); 

in situations execute them 1 after , in cases works fine, somethimes - not. in result of second query counter takes row:

visual studio - quick watch enter image description here

sql management studio enter image description here

i guess it's matter of ef cache or smth, don't know how fix properly.

in first query joining activation id (pk) licenseconfigurations activationid (fk)

join licenseconfiguration in entities.licenseconfigurations on activation.id equals licenseconfiguration.activationid 

in second query, looks joining on value defined outside of query "activatedproduct"

join licenseconfiguration in entities.licenseconfigurations on activation.id equals activatedproduct.activationid 

Comments

Popular posts from this blog

matlab - Deleting rows with specific rules -

php - MySQLi multi_query results for later use -