首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ADO.NET实体框架-如何只从一个表中选择数据(而忽略其他表)?

ADO.NET实体框架-如何只从一个表中选择数据(而忽略其他表)?
EN

Stack Overflow用户
提问于 2011-03-15 11:47:06
回答 2查看 4.7K关注 0票数 0

背景是我所在的团队刚刚开始使用EntityFramework;首先我们设计了数据库,将所有的表关系放在适当的位置,外键等;然后通过visual studio添加一个新的ADO.NET实体数据模型,然后自动魔术地得到生成的代表整个数据库的edmx文件!

现在我将重点放在两个表上,这两个表提供了所有下拉列表和查找列表的数据;

代码语言:javascript
复制
TLookupDomain (domainID, domainName, domainDesc )

TLookup (lookupID, domainID, lookupCode, lookupDisplay, lookupDesc, sortOrder)

关系是从左到右的1-M关系:

TLookupDomain -< TLookup -< TOther (+另外30个左右的其他表)

因此,lookupID是多达30个表的外键;

代码语言:javascript
复制
IQueryable<TLookup> qList = from l in ctx.TLookups
                            where l.domainID == 24
                            select l;
foreach (TLookup l in qList)
{
   //do something.
   System.Diagnostics.Debug.WriteLine("{0}\t{1}", l.lookupCode, l.lookupDisplay);
   foreach (TOther f in l.TOthers)
   {
      System.Diagnostics.Debug.WriteLine("{0}\t{1}", f.feeAmount, f.feeDesc);
   }
}

当我执行上面的LINQ时,我得到了TLookup表的所有字段(这是公平的),但是也会获取链接到它的大约30个表的数据,即使我在这一点上对其他表的数据不感兴趣,而且我将在LINQ获取数据时立即丢弃所有数据。

我有两个问题: Q.1)我能不能以某种方式修改上面的LINQ查询,或者告诉EntityFramework不要从其他30个链接表中提取数据?

Q.2)使用一个edmx文件来对整个数据库进行建模是“正确的”吗?(对我来说听起来不太靠谱)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-15 12:02:34

为模型将Lazy Load配置为true。只有在导航时才能加载关系。您还可以拆分模型,以避免太多不必要的关系。

票数 1
EN

Stack Overflow用户

发布于 2011-03-15 16:29:02

Linq-to-Entities查询不会自动获取任何内容。导航属性的获取是通过急切或延迟加载来实现的。您没有使用预加载,因为这需要在查询中调用Include (或单独调用ctx.LoadProperty )。因此,如果您的数据被获取,这一定是由于默认情况下启用的延迟加载。一旦您访问代码中的导航属性,就会触发延迟加载。

您还可以使用projections仅返回所需的数据。下面这样的代码应该返回只读数据:

代码语言:javascript
复制
var query = from l in ctx.TLookups
            where l.domainId == 24
            select new 
              {
                l.lookupCode,
                l.lookupDisplay,
                l.TOthers
              };

拥有一个或多个EDMX是常见的两难境地。使用单个EDMX可以使事情变得更加简单。如果您想知道如何使用多个EDMX并共享概念定义,请查看这两篇文章:Part 1Part 2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5307318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档