преобразование в строку в linq для entites - PullRequest
1 голос
/ 18 февраля 2012

Здесь DisplayName имеет тип string, foo является объектом. Когда я использую foo.ToString(), выдает ошибку.

У меня есть код:

var completionTimeModels =
    from timeline in context.processTimelines
    join asst in context.timeKeeping on timeline.Id equals asst.Id into TT
    from TimeModels in TT.DefaultIfEmpty()

    let foo = TimeModels.ExternalId !=null ? TimeModels.Name: timeline.circuitName
    select new Items()
    {
        Name = timeline.Name
        DisplayName = foo
    };

и когда я делаю следующее:

DisplayName = TimeModels.ExternalId !=null ? TimeModels.Name.ToString(): timeline.circuitName.ToString(),

выдает ошибку:

Linq не может обработать .ToString ()

1 Ответ

2 голосов
/ 18 февраля 2012

ToString() не определено для Linq to Entities - вы можете проецировать на анонимный класс, а затем переключиться на Linq на Objects для окончательного проецирования:

    (...
    select new 
    { 
        Name = timeline.Name, 
        DisplayName = TimeModels.ExternalId !=null ? TimeModels.Name : timeline.circuitName
    })
    .AsEnumerable()
    .Select(x=> new Items()
     {
              Name = x.Name
              DisplayName = x.DisplayName.ToString()
     };

Почему вы должны делать это в первую очередь, хотя? К какому типу относятся TimeModels.Name и timeline.circuitName?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...