c# - Using ToString() in LINQ queries? -


i have writting linq query fill listview useses .tostring() method apparetly not allowed. when use below code error message:

error: linq entities not recognize method 'system.string tostring()' method, , method cannot translated store expression

is there way use tostring() in linq or if not possible solution converting datetime string in query. please knot releasedatename string , releasedate datetime

using (var db = new releaseinfo()) {     lvreleaseinfo.datasource = (from r in db.mediareleases                                 join rn in db.releasenames                                 on new { mediareleaseid = r.mediareleaseid, culturecodeid } equals new { rn.mediareleaseid, rn.culturecodeid }                                 join plat in db.mediaplatforms                                 on new { mediaplatformid = r.mediaplatformid, culturecodeid } equals new { plat.mediaplatformid, plat.culturecodeid }                                 join pub in db.mediapublishers                                 on new { mediapublisherid = r.mediapublisherid, culturecodeid } equals new { pub.mediapublisherid, pub.culturecodeid }                                 join c in db.countries                                 on new { countryid = r.countryid, culturecodeid } equals new { c.countryid, c.culturecodeid }                                 join rd in db.releasedates                                 on new { mediareleaseid = r.mediareleaseid, culturecodeid } equals new { rd.mediareleaseid, rd.culturecodeid }                                 join in db.affiliatelinks                                 on new { mediareleaseid = r.mediareleaseid, culturecodeid } equals new { a.mediareleaseid, a.culturecodeid }                                 r.sectionid == sectionid                                 select new                                 {                                     rn.releasetitle,                                     plat.mediaplatformname,                                     pub.mediapublishername,                                     c.countryname,                                     releasedate = (rd.releasedate == null ? rd.releasedatename : rd.releasedate.tostring()),                                     a.affiliatelinkaddress                                 }).tolist();     lvreleaseinfo.databind(); } 

since materializing query list anyway, conversion on .net side, rather in rdbms, this:

... select new {    rn.releasetitle,    plat.mediaplatformname,    pub.mediapublishername,    c.countryname,    rd.releasedatename,    rd.releasedate,    a.affiliatelinkaddress }).asenumerable() // <<== forces following select operate in memory .select(t => new {    t.releasetitle,    t.mediaplatformname,    t.mediapublishername,    t.countryname,    releasedate = t.releasedatename ?? t.releasedate.tostring()    t.affiliatelinkaddress         }).tolist(); 

since tostring() called on element ienumerable<t>, no longer fail. note use of ?? operator in place of null-checking ? : conditional.


Comments

Popular posts from this blog

c# - DetailsView in ASP.Net - How to add another column on the side/add a control in each row? -

javascript - firefox memory leak -

Trying to import CSV file to a SQL Server database using asp.net and c# - can't find what I'm missing -