datetime - LINQ to SQL convert serverTime to localTime -


i using linq sql query in order retrieve list of objects db. query quite big , several calculations , joins between different tables.

before retrieving several data want check if object date equal or greater localtime of user. have created dictionary based on timezoneid finds offset each timezone. try add offset server time in order obtain localtime. when try add hours servertime, following error occures:

could not translate expression 'invoke(value(system.func`1[system.datetime])).addhours(convert(<>h__transparentidentifier41.offset))' sql , not treat local expression.

i know error caused offset value. have no idea how fix or how convert servertime localtime each object retrieved db in linq sql. want inside query in order avoind additional foreach loops.

a sample of used code can seen below.

 public static func<datacontext, int, datetime?> getlastdataquery =             compiledquery.compile((datacontext db, int id) =>                 (from obj in db.objects                  obj.id == id                   select (datetime?)obj.date).max());          dictionary<string, int> localtimesoffsets = timezoneutils.getsystemtimezones().todictionary(t => t.id, t => t.baseutcoffset.hours);         datetime servertime = datetime.now;          list<gridentity> entities = (from obj in db.object                                                let lastdate = getlastdataquery (db, obj.id)                                                  let offset = localtimesoffsets[plant.timezoneid]                                                let localtime = (datetime)servertime.addhours((double) offset)                                                 select new entity                                                {                                                    id = obj.id,                                                    name = obj.name,                                                    owner = obj.owner,                                                    street = obj.street,                                                    postcode = obj.postcode,                                                    town = obj.town,                                                    countryid = obj.countryid,                                                    status = plant.statusid,                                                    todayshigheststatuslevel = plant.todayshigheststatuslevel,                                                     calculatedvales = (lastdate.date < localtime.date) ? 0 : calculatedvalue,                                                   }).orderby(obj => obj.name).tolist<gridentity>(); 


Comments

Popular posts from this blog

java - Oracle EBS .ClassNotFoundException: oracle.apps.fnd.formsClient.FormsLauncher.class ERROR -

c# - how to use buttonedit in devexpress gridcontrol -

nvd3.js - angularjs-nvd3-directives setting color in legend as well as in chart elements -