我在 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);
}
最佳答案
如果您想从分类表中获取所有行,
添加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/