KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a database table that contains an nvarchar column like this: 1|12.6|18|19 I have a Business Object that has a Decimal[] property. My LINQ Query looks like this: var temp = from r in db.SomeTable select new BusinessObject { // Other BusinessObject Properties snipped as they are straight 1:1 MeterValues = r.MeterValues.Split('|').Select(Decimal.Parse).ToArray() }; var result = temp.ToArray(); This throws an NotSupportedException: Method 'System.String[] Split(Char[])' has no supported translation to SQL. That kinda sucks :) Is there any way I can do this without having to add a string property to the business object or selecting an anonymous type and then iterating through it? My current "solution" is: var temp = from r in db.SomeTable select new { mv = r.MeterValues, bo = new BusinessObject { // all the other fields } }; var result = new List<BusinessObject>(); foreach(var t in temp) { var bo = t.bo; bo.MeterValues = t.mv.Split('|').Select(Decimal.Parse).ToArray(); result.Add(bo); } return result.ToArray(); // The Method returns BusinessObject[] That's kinda ugly though, with that temporary list. I've tried adding a let mv = r.MeterValues.Split('|').Select(Decimal.Parse).ToArray() but that essentially leads to the same NotSupportedException. This is .net 3.5SP1 if that matters.
Tags (comma-separated)
Save Edits
Cancel