EF Core 2.0 ThenInclude with WHERE

时间:2017-08-23 08:37:00

标签: c# entity-framework

我的数据库中碰巧存在以下关系:

cartentry - >产品 - > producttext< - culture

因此,对于每个产品,我都可以为每个支持的文化设置标题,desc等。我从存储过程切换到EF,因此我必须迁移sp以获取具有本地化名称的购物车中的所有项目。

嗯,我有感觉,这不太优雅:

public ActionResult Index(CartIndexViewModel vm)
    {
        vm.Cart = db.Cart
            .Include(cart => cart.Product)
                .ThenInclude(pt => pt.ProductText)
                    .ThenInclude(c => c.Culture)

            .Where(t => t.Token == ContextHelper.GetToken(HttpContext))
            .ToList();

        foreach (Model.Cart cart in vm.Cart)
        {
            Model.ProductText pt = cart.Product.ProductText.First(n => n.Culture.Name == CultureInfo.CurrentCulture.Name.ToLowerInvariant());

            cart.Product.Title = pt.Title;
            cart.Product.Description = pt.Description;
            cart.Product.Link = pt.Link;
        }

        return View(vm);
    }

有更美妙的方式吗?特别是摆脱额外的foreach?

提前谢谢!

0 个答案:

没有答案
相关问题