c# - ASPNETBOILERPLATE - 应用程序服务方法不返回 .NET Core 中的相关实体

标签 c# entity-framework-core aspnetboilerplate

我正在将我的 .NET MVC5 模板转换为 ASPNETZERO 的 .NET Core MVC 模板。因此,我正在转换的所有代码都按照我在 MVC5 模板解决方案中的需要工作。我的方法代码如下所示。

  public async Task<EditCompanyDto> GetCompanyForEdit(NullableIdDto input)
    {
        var companyEditDto = (await _companyRepository.GetAsync((int)input.Id));
        var cmp = companyEditDto.MapTo<EditCompanyDto>();
        return cmp;
    }

这段代码在MVC5模板中完美运行,返回Address、Contact和Note的相关实体。在 .NET Core 解决方案中,这段完全相同的代码在上述方法中仅返回地址和联系人集合。它一直将 Note 集合返回为 NULL。

下面显示的是我的公司实体。我删除了这篇文章的一些字段,但保留了所有导航属性。

public class Company : FullAuditedEntity, IMustHaveTenant
{

    public string CompanyTaxId { get; set; }

    public bool ActiveYesNo { get; set; }

    public virtual NoteHeader Note { get; set; }

    public virtual List<CompanyAddress> Addresses { get; set; }

    public virtual List<CompanyContact> Contacts { get; set; }

    public virtual int TenantId { get; set; }

    public Company()
    {
        Addresses = new List<CompanyAddress>();
        Contacts = new List<CompanyContact>();
    }

}

最佳答案

你说笔记收藏。据我所知,Note 不是收藏。让我们假设它是集合。 加布里埃尔的做法是正确的。但不包括注释字段。因此你的代码应该是这样的

var company = _companyRepository.GetAll()
                                .Include(c => c.Addresses)
                                .Include(c => c.Contacts)
                                .Include(c => c.Note)
                                .FirstOrDefault(x => x.Id == input.Id);

注意: GetAll() 并不意味着您从数据库中获取所有数据。 GetAll() 返回 IQueryable。因此,您可以在它之后添加 Linq 方法。但是,如果您使用 GetAllList(),是的,它会从表中获取所有数据。

关于c# - ASPNETBOILERPLATE - 应用程序服务方法不返回 .NET Core 中的相关实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45047191/

相关文章:

c# - EF Core 2.2 新迁移不断删除和重新创建种子数据

c# - 如何简化Where(e => e.prop1.contains() || e.prop2.contains() || ...)中的重复OR条件

entity-framework-core - Azure Synapse 分析 |用户 '<token-identified principal>'登录失败

c# - ASP.NET Boilerplate 多个数据库和 DbContexts

c# - 如何在 IIS 上运行的 dotnet 核心应用程序中获得可见性/调试高内存使用率

C# 向 mysql 发送错误参数

c# - 2013 年末使用 Oracle 数据库的 .NET 应用程序有哪些数据访问选项?

c# - 获取代码隐藏以创建完整的 JS 部分

c# - ADO.NET ExecuteScalar() 不抛出异常

aspnetboilerplate - ABP 中的 System.ObjectDisposeException