I have the following Linq to Sql:
var subscribers = (from s in dataContext.Employees
where s.RowType == "Edit"
select new SubscriberExportData
{
ID = s.ID.ToString(),
GroupNum = s.GroupNumber,
DivisionNum = s.DivisionNumber,
HireDate = s.HireDate != null ? Convert.ToDateTime(s.HireDate).ToShortDateString() : string.Empty,
EffDate = s.EffectiveDate != null ? Convert.ToDateTime(s.EffectiveDate).ToShortDateString() : string.Empty
}
Essentially, if the date value is not null then convert them to short date format. But I am getting the following error:
System.InvalidOperationException was unhandled
Message=Could not translate expression ‘Table(Employee).Where(s => (s.RowType == “Edit”)).Select(s => new SubscriberExportData() { HireDate = IIF((s.HireDate != null), ToDateTime(Convert(s.HireDate)).ToShortDateString(), Invoke(value(System.Func`1[System.String]))), EffDate = IIF((s.EffectiveDate != null), ToDateTime(Convert(s.EffectiveDate)).ToShortDateString)’ into SQL and could not treat it as a local expression.
Source=System.Data.Linq
Please let me know how to resolve it.
You can split the query into two, the first being operations that sql understands and the second being the string conversions that will be performed locally