Член указанного типа не поддерживается в linq для сущностей - PullRequest
0 голосов
/ 11 февраля 2012

Привет, надеюсь, кто-нибудь может помочь.

У меня есть контекст EF4 с двумя объектами на основе POCO, которые отображаются на 2 таблицы в устаревшей базе данных SQL2005.Между таблицами нет связей и нет связей между определениями сущностей в контексте.

public class Venue
{
    public Venue(){}
    public string LocationCode {get;set;}
    public string LocationName {get;set;}
}

public class Booking
{
    public Booking(){}
    public string LocationCode {get;set;}
    public int EventReference {get;set;}
    public Venue BookingVenue {get;set;}
    public Event BookingEvent {get;set;}
}

public class Event
{
    public Event(){}
    public int EventReference {get;set;}
    public DateTime EventStart {get;set;}
    /* plus another 60 or so properties */
}

Я могу выбрать LINQ для каждого из них по отдельности, но всякий раз, когда я пытаюсь соединиться между Event и Booking, я получаю

Указанный тип члена «BookingEvent» не поддерживается в LINQ to Entities.Поддерживаются только инициализаторы, элементы сущностей и свойства навигации сущностей.

Я перепробовал все обходные пути, которые я могу найти в Интернете (нет перечислений, вычисляемых свойств и т. Д.), И я больше, чемнемного расстроен сейчас.

Помощь?Вот вопрос в вопросе ....

List<Booking> bookings = (from b in CalendarDB.Bookings
    join e in CalendarDB.Events join b.EventReference on e.EventReference
    select b).ToList();

1 Ответ

0 голосов
/ 11 февраля 2012

Без отношений в модели, я не думаю, что EF сможет выяснить, какие данные использовать для присоединения. Даже если у вашего класса Booking есть свойство BookingEvent, EF не просто «знает», что ему нужно присоединиться к таблице событий на основе Booking.EventReference. Из-за этого любой запрос, который пытается использовать эти ссылочные свойства, не будет выполнен.

...