首页 > 解决方案 > 如何避免检索消耗额外时间的不需要的数据

问题描述

我有这三个模型 A , B , C 。

假设这些类看起来像:

Public class A 
{
    public int Id {get;set;}
    public string Name {get;set;}
    public ICollection<B> bc {get;set;} 
    public ICollection<C> cc {get;set} 
}

Public class B 
{
    public int Id {get;set;}
    public string Name {get;set;}
}

Public class C  
{
    public int Id {get;set;}
    public string Name {get;set;}
}

假设我想要 A 中的所有数据,除了 cc 或 bc 。

问题是每当我调用 getall 方法时,它都会返回所有相关的东西,实际上它在我的代码中要复杂得多,所以 B 和 C 中也有集合,它带来了几乎所有东西,而且执行起来需要很多时间,就像一个环形。

到目前为止,我已经尝试使用 select 但仍然转到模型并获取所有字段。

任何帮助请,谢谢。

标签: asp.netentity-frameworkmodel-view-controller

解决方案


您可以使用数据注释从模型中排除属性。您可以访问此链接:https ://docs.microsoft.com/en-us/ef/core/modeling/included-properties以参考更多信息。希望对你有所帮助,新年快乐,我的朋友 :))

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }

    [NotMapped]
    public DateTime LoadedFromDatabase { get; set; }
}

class MyContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Blog>()
            .Ignore(b => b.LoadedFromDatabase);
    }
}

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }

    public DateTime LoadedFromDatabase { get; set; }
}

推荐阅读