【问题标题】:no intellisense for many to many association多对多关联没有智能感知
【发布时间】:2013-01-04 17:25:30
【问题描述】:

我正在尝试在 LINQ 中为 EF5 构建查询。我的模型建立了一个有两个外键的关联,shippingcompanycontacts 有一个 contactid 和一个 shippingcompanyid。该“表”没有智能感知(它在 mySQL 中显示为表)我尝试以这种方式访问​​数据无济于事。 (我对 id 进行了硬编码)

 Dim testquery = (From s In ctx.shippingcompanies Where s.Id = 1 Join
                c In ctx.contacts On s.Id Equals c.Id Select New With {c.LastName}).ToList()

我确实需要访问关联表,但没有智能感知

【问题讨论】:

    标签: linq entity-framework linq-to-entities


    【解决方案1】:

    默认情况下,关联表在 EF 中不可用。您只有 ContactsShippingCompanies 并且它们中的每一个都包含指向其相关计数器部分的导航属性,因此您的查询可以定义为(C#):

    var query = from s in ctx.shippingcompanies 
                where s.Id == 1
                from c in s.contacts // accessing navigation property
                select c.LastName;
    

    您可以将manually edit EDMXShippingCompanyContacts 作为一个新实体,但这不是使用EF 的常用方式。

    【讨论】:

    • 您能解释一下为什么 s.contacts 有效吗?不只是以可变形式的 shippingcompanies 表吗?它没有字段联系人,那么为什么 s.contacts 有效? (顺便说一句)
    • 这就是 EF 背后的魔力。它将导航属性转换回数据库中的关系,并与联结表和联系人表进行连接。
    猜你喜欢
    • 2016-10-26
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2017-04-16
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    相关资源
    最近更新 更多