c# - 从带有外键的表中获取数据 C# Entity Framework

标签 c# entity-framework-core

我在 Code First asp.net 中有这个类

public class Account
    {
        [Key]
        public int Id { get; set; }
        [Column(TypeName = "nvarchar(100)")]
        public string AccountTitle { get; set; }
        public Classification Classification { get; set; }
    }

    public class Classification 
    { 
        [Key]
        public int Id { get; set; }
        [Column(TypeName = "nvarchar(100)")]
        public string TitleClassification { get; set; }

        public ICollection<Account> Accounts { get; set; }
    }

    public class ClassificationDto
    {
        public int Id { get; set; }
        public string TitleClassification { get; set; }
    }

在我的数据库上下文中

public DbSet<Account> Accounts { get; set; }

AccountingManager.FindAll是这个

public IQueryable<T> FindAll()
        {
            return context.Set<T>().AsNoTracking().AsQueryable();
        }

我试图只获取只有 3 的“分类”,但我也通过以下代码获取与其关联的“帐户”:

[HttpGet]
        [Route("get-classification")]
        [Authorize]
        public async Task<IActionResult> GetAccountClassification()
        {
            List<ClassificationDto> classificationList = new List<ClassificationDto>();

            var accountingManager = new AccountingManager(context);

            var list = accountingManager.FindAll();

            classificationList = await list.Select(s => new ClassificationDto
            {
                Id = s.Classification.Id,
                TitleClassification = s.Classification.TitleClassification,
            }).ToListAsync();

            return StatusCode(StatusCodes.Status200OK, classificationList);
        }

这就是我表中的样子 enter image description here

最佳答案

如果您想从分类表中获取所有行,

添加public DbSet<Classification> Classifications { get; set;}属性(property)给您DbContext类(class)。然后执行类似FindAll()方法:

return context.Classifications.AsNoTracking().ToList()

关于c# - 从带有外键的表中获取数据 C# Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66917325/

相关文章:

c# - 需要 ASP.NET Core 2.0 分页帮助

linq - SELECT 结果映射到 Entity Framework Core 中 Dynamic Linq 中的实体

c# - 如何使用 C#.net 为 iPhone 中的推送通知准备后端

c# - .NET 3.5 C# 错误与 System.Timer System.ObjectDisposedException : Cannot access a disposed object

c# - 如何将参数发送到 Quartz.Net 中的类

c# - 尝试在 Razor Pages 中添加脚手架项目时出错

c# - 将通用预加载方法从 EF6 转换为 EF Core

c# - 如何使用自动映射器将具有多对多关系的 DTO 映射到具有关系表的 EF 核心实体?

c# - DataGridView 中的列顺序在运行时更改

c# - 正则表达式单词边界和匹配项之间的距离