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 
sql management studio 
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
Post a Comment