Entity framework 尝试使用实体框架从sql数据库遍历表,目标是.NET3.5网站

Entity framework 尝试使用实体框架从sql数据库遍历表,目标是.NET3.5网站,entity-framework,.net-3.5,ado.net-entity-data-model,Entity Framework,.net 3.5,Ado.net Entity Data Model,我只是尝试使用ado.net实体框架从两个sql server db表中获取数据。我的代码是: using (Model.Entities e = new Model.Entities()) { return e.PAGE.First().CONTROL; } 数据库设置为有两个表,一个控制表通过表中的“id”字段(控制id)链接到页面表。每个页面对象都有一个控件对象 我不断得到一个空值作为我的返回值,我知道这是不对的 我可以使用vis studio和断

我只是尝试使用ado.net实体框架从两个sql server db表中获取数据。我的代码是:

    using (Model.Entities e = new Model.Entities())
    { 
       return e.PAGE.First().CONTROL;
    }
数据库设置为有两个表,一个控制表通过表中的“id”字段(控制id)链接到页面表。每个页面对象都有一个控件对象

我不断得到一个空值作为我的返回值,我知道这是不对的

我可以使用vis studio和断点来查看“e”中是否有一个页面对象,以及“e”中是否有多个控件对象。这不是一个大型数据库,我只是有一些样本数据在那里,以确保我得到这个工作-所以我知道,应该有一个控制对象连接到这个页面(我已经通过sql server验证了这一点)

我非常熟悉一般的代码语法,我已经使用LINQ好几年了;但是,我在实体框架或ado.NET4方面没有做太多工作

似乎如果我只是拉取单个表数据,那么它就可以正常工作(例如,PAGE.First()…或..e.CONTROL.Where(x=>x.someValue.Equals('someValue')),但是如果我试图通过遍历表来拉取,那么我什么也得不到(NULL)


希望这一切都有意义。

给你一些问题:

  • 我假设页面和控件之间是1..1
  • 第页是否有名为“ControlID”的FK
  • 在EDMX中的“页面”实体上是否有名为“控件”的导航属性
如果以上所有问题的答案均为“是”,则该选项应适用:

var page = e.Pages.Include("Control").First();
在这里,您将返回第一条“页面”记录,并加载关联的控件

生成的SQL应该是这样的:

SELECT p.*, c.*
FROM Page p
INNER JOIN Control c
on p.ControlId = c.ControlId

谢谢,这正是我想要的!