asp.net - 如何避免检索消耗额外时间的不需要的数据
问题描述
我有这三个模型 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 但仍然转到模型并获取所有字段。
任何帮助请,谢谢。
解决方案
您可以使用数据注释从模型中排除属性。您可以访问此链接: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; }
}
推荐阅读
- python - 由于布兰卡错误,无法在 Linux Mint 上使用 Python 2.7 安装 folium
- css - 使用内联 SVG 遮罩图像或视频
- android - EditText 和焦点
- qt - “when”子句设置默认状态的 QML 状态更改
- r - dplyr 为每个类别选择前 10 个值
- scala - 斯卡拉。如何在成功时从 Future 获取值,在失败时抛出异常?
- python - 使用“brew install ansible”命令无法完美安装 ansible 在 MacOS 中不起作用?错误:-sh:/usr/local/bin/ansible:没有这样的文件或目录
- java - 在现有 java 项目的 Maven 构建期间找不到类断言符号
- java - 在 Java 11 上替换或使用 ShellFolder.getShellFolder() 的方式
- image - React Native 中响应式图像的分辨率(在手机和平板电脑上不模糊)