Если вы подключаетесь к базе данных через LINQ to SQL / Entities, то вызов String.Format, скорее всего, завершится неудачно, так как для этих поставщиков предложение select выполняется внутри базы данных. Не все можно перевести с C # на SQL.
Чтобы преобразовать результаты вашей базы данных в строку, как вы хотите, должно работать следующее:
var temp = (
from d in context.dates
from s in context.Seasons
where s.SeasonID == d.DateID
select new { s.StartYear, s.EndYear }
).ToList(); // Execute query against database now, before converting date parts to a string
var temp2 =
from t in temp
select new DateRange
{
DateString = t.StartYear + " - " + t.EndYear
};
List<DateRange> collection = temp2.ToList();
EDIT:
У меня была дополнительная мысль. Вызов String.Format, скорее всего, является проблемой. Я не уверен, сработает ли это или нет, но как насчет concat с обычной Джейн:
List<DateRange> collection =
(from d in context.dates
select new DateRange
{
DateString = from s in context.Seasons
where s.SeasonID = d.DateID
select s.StartYear + " - " + s.EndYear
}
).ToList<DateRange>();