Asp.net mvc 使用LINQ to SQL和带外键的实体框架查询数据?

Asp.net mvc 使用LINQ to SQL和带外键的实体框架查询数据?,asp.net-mvc,linq-to-sql,entity-framework,Asp.net Mvc,Linq To Sql,Entity Framework,在使用LINQtoSQL和实体框架(我使用的是VisualStudio2010)查询数据时,我需要帮助 我有三张桌子: tblNewsDetails tblNewsCategories tblNewsInCategories (见下图中的照片1。) 现在,我想检索tblNewsDetails表中的记录,条件为CategoryId=1,如下图中的照片2所示 但是tblNewsInCategories表中的NewsID和CategoryId是两个外键。我看不到它们,也不知道如何在代码中使用它们 另外

在使用LINQtoSQL和实体框架(我使用的是VisualStudio2010)查询数据时,我需要帮助

我有三张桌子:

  • tblNewsDetails
  • tblNewsCategories
  • tblNewsInCategories
  • (见下图中的照片1。)

    现在,我想检索
    tblNewsDetails
    表中的记录,条件为
    CategoryId=1
    ,如下图中的照片2所示

    但是
    tblNewsInCategories
    表中的
    NewsID
    CategoryId
    是两个外键。我看不到它们,也不知道如何在代码中使用它们

    另外,我的代码有错误,如下图中的照片3所示


    有几种可能的方法,下面是其中一种

    from n in tblNewsInCategories.Include("NewsCategory").Include("NewsDetail")
    where n.NewsCategory.CategoryID == 1
    select n.NewsDetail
    
    请记住,n(和b,在您的示例中)是TblNewsInCategories实体,它们可能具有以下属性:

    {
        public int NewsInCategories { get; set; } // your middle table primary key
        public TblNewsCategory NewsCategory { get; set; } // a navigation property
        public TblNewsDetails NewsDetail { get; set; } // a navigation property
    }
    

    因此,为了访问NewsId和CategoryId,您必须检查导航属性。

    我真的怀疑您是否同时使用LINQ to SQL和实体框架。。。您可能正在使用Linq到实体,而不是Linq到SQL非常感谢Dynamic Le Savard。我已经解决了这个问题。(我花了三天时间试图解决这个问题)。你是个好人,知识渊博。我想在facebook上和你交朋友:-)