linq to entities不支持指定的类型成员

时间:2012-02-11 02:57:57

标签: linq entity-framework join member

希望有人可以提供帮助。

我有一个EF4上下文,其中包含2个基于POCO的实体,这些实体映射到旧版SQL2005数据库中的2个表。表之间没有关系,上下文中的实体定义之间没有关联。

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选择,但每当我尝试加入事件和预订时我都会

LINQ to Entities不支持指定的类型成员'BookingEvent'。仅支持初始化程序,实体成员和实体导航属性。

我已经尝试了我可以在网上找到的所有变通方法(没有枚举,计算属性等),而且我现在感到非常沮丧。

帮助? 这是有问题的查询......

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

1 个答案:

答案 0 :(得分:0)

如果没有模型中的关系,我认为EF无法确定要使用哪些数据加入。即使您的Booking类具有BookingEvent属性,EF也不仅仅“知道”它需要基于Booking.EventReference加入Event表。因此,任何尝试使用这些引用属性的查询都将失败。