首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用EntityFramework包含多个表

使用EntityFramework包含多个表
EN

Stack Overflow用户
提问于 2017-05-30 20:59:42
回答 2查看 1.9K关注 0票数 1

我有3张表格,如下图所示

我在c#上有实体框架codefirst模型(自动生成)

我正在尝试从每个元素的包含附件的实体列表中获取IEnumerable,我希望每个附件的AttachmentType都包含这些附件元素。

为了更好地演示,我需要:

代码语言:javascript
复制
IEnumerable<Registry> registries = GetTableData();
string oneofthedesiredname = registries
.First()
.Attachments
.First()
.AttachmentType.Name; //I want that, this definition works but its null

使用GetTableData()方法类似于

代码语言:javascript
复制
public IEnumerable<Registry> GetTableData()
    {
        IQueryable<Registry> _registries = _entities.Registry;
        IEnumerable<Registry> data;
        data = _registries
        .Where(p=>p.IsDeleted==false)
        .Include(p=>p.Attachments.Where(x=>x.IsDeleted==false))
        .AsEnumerable();//this query should have change because I cant get Attachmenttypes from this            
        return data;
    }

谢谢大家,感谢你们的帮助。

EN

回答 2

Stack Overflow用户

发布于 2017-05-30 21:14:27

还必须在查询中为AttachmentType添加额外的Include。

代码语言:javascript
复制
public IEnumerable<Registry> GetTableData()
{
    IQueryable<Registry> _registries = _entities.Registry;

    IEnumerable<Registry> data = _registries
        .Include(x => x.Attachments)
        .Include("Attachments.AttachmentType")
         // here do necessary filtering with Where()
         // ...

    return data;
}
票数 0
EN

Stack Overflow用户

发布于 2017-05-30 22:06:29

使用此函数

代码语言:javascript
复制
public IEnumerable<Registry> GetTableData()
    {
        IQueryable<Registry> _registries = _entities.Registry,where(m=>m.IsDeleted==false);
        IEnumerable<Registry> data;
        data = _registries     .Include(p=>p.Attachments.Where(x=>x.IsDeleted==false)).
 include(p=>p.AttachmentType).AsEnumerable();
        return data;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44262981

复制
相关文章

相似问题

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