【问题标题】:EF Core : Foreign key returns null value : Repository PatternEF Core:外键返回空值:存储库模式
【发布时间】:2020-08-11 13:31:54
【问题描述】:

我有一个dotnet core web api,它使用Repository PatternAutoMapper 将资源映射到模型......, 这是InMemoryDatabase 实现 如下所示,它是一个ProducRepository,它使用EntityFrameworkInclude()方法来包含类别数据

    public async Task<IEnumerable<Products>>ListAsync(){
        return await _context.Products.Include(p=>p.Categories).ToListAsync();
    }

我为HttpGet实现了分类服务,并准备了在ProductController获取数据的方法,这里是get方法

    [HttpGet]
    public async Task<IEnumerable<ProductResource>>ListAsync(){
        var products=await _ProductService.ListAsync();
        var resource = _mapper.Map<IEnumerable<Products>,IEnumerable<ProductResource>>(products);
        return resource;
    }

ProductResource我就这样通过了CategoryResource

 public class ProductResource
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int QuantityInPackage { get; set; }
    public string UnitOfMeasurement { get; set; }
    public CategoryResource categoryResource { get; set; }
}

这意味着当我运行产品时Get RequestCategoryResource必须在ProductResourse旁边执行,但它返回null就像这样

【问题讨论】:

标签: .net api .net-core


【解决方案1】:

这里的主要思想是 productProductResource 只是它们映射为 DescriptionAttribute 而不是包含

 // Mapping Description Attribut
 CreateMap<Products,ProductResource>()
            .ForMember(src=>src.UnitOfMeasurement,
                
 opt=>opt.MapFrom(src=>src.UnitOfMeasurement.ToDescriptionString()));

// Mapping Categories Table
        CreateMap<Products,ProductResource>()
            .ForMember(dto=>dto.Categories,
                conf=>conf.MapFrom(p=>p.Categories));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多