我在此方面遇到了困难,希望您能为您提供帮助。
在我的GiftCertificateController.cs中(我在索引方法中使用了LINQ查询)
private readonly VoucherDbContext _context;
public GiftCertificateController(VoucherDbContext context)
{
_context = context;
}
public async Task<IActionResult> Index()
{
var gifts = _context.GiftCertificates
.Include(e => e.VoucherCampaigns)
.Include(e => e.CouponBrand)
.Include(e => e.CouponTypes);
return View(await gifts.ToListAsync());
}
但是现在在调试过程中,将鼠标悬停在'gifts.ToListAsync'上会显示'Ienumerable:枚举没有结果'。
奇怪的是,我对3个不同的控制器使用完全相同的模式(相同的业务实体结构,相同的实体映射结构,相同的视图结构),它们似乎都可以正常工作,但是特别是对于此控制器,它不是能够显示单个数据库属性。 (该表有30多行)
这是业务实体GiftCertificates.cs的摘录:
public partial class GiftCertificates
{
[Key]
public int Id { get; set; }
public string CertificateId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public decimal? CertificateAmount { get; set; }
public decimal? CertificateValue { get; set; }
public int? TypeId { get; set; }
public int? CategoryId { get; set; }
public int? BrandId { get; set; }
[ForeignKey("CampaignId")]
public VoucherCampaigns VoucherCampaigns { get; set; }
[ForeignKey("TypeId")]
public CouponTypes CouponTypes { get; set; }
[ForeignKey("BrandId")]
public CouponBrand CouponBrand { get; set; }
}
这是我的DbContext中的实体映射的摘录:
entity.ToTable("CertificateMaster");
entity.Property(e => e.Id)
.IsRequired()
.HasColumnName("Id");
entity.Property(e => e.CampaignId)
.HasColumnName("CampaignId");
entity.Property(e => e.CertificateId)
.HasColumnName("CertificateId");
SQL中的数据库表名称为dbo.CertificateMaster。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
理想情况下,您要先等待,然后将其传递给视图
public async Task<IActionResult> Index() {
var gifts = await _context.GiftCertificates
.Include(e => e.VoucherCampaigns)
.Include(e => e.CouponBrand)
.Include(e => e.CouponTypes)
.ToListAsync();
return View(gifts);
}