首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# asp.net -上下文与List<T>的关联

C# asp.net -上下文与List<T>的关联
EN

Stack Overflow用户
提问于 2022-10-28 09:40:17
回答 1查看 93关注 0票数 0

我对lambda的查询有个小问题。

我有两张桌子:存货和物品。另外,我还创建了一个我想要展示的部件列表。

代码语言:javascript
复制
public class SteelSheet
{
    public string Part { get; set; }
    public float Quantity { get; set; }
}
代码语言:javascript
复制
var sheetTest = _context.Inventories.Include(x => x.Article)......;

文章包括领域部分。我想要显示的数据,从库存和文章,其中只包含部分从steelSheet列表。

编辑:

代码语言:javascript
复制
    public class Inventory
    {
        public int ID { get; set; }

        public int Stock { get; set; }

        public int ArticleID { get; set; }

        public Article Article { get; set; }

    }
代码语言:javascript
复制
    public class Article
    {
        public int ID { get; set; }

        public string Part { get; set; }

        public float Price { get; set; }
        public ICollection<Inventory> Inventory { get; set; }
    }
代码语言:javascript
复制
steelSheet.Add(new SteelSheet() { Part = "PART0001", Quantity = "8" });
steelSheet.Add(new SteelSheet() { Part = "PART0002", Quantity = "3" });

SteelSheet是我想要显示的部件列表(我使用另一个函数来概括这个列表),但我也希望从商品和库存中看到价格。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-28 11:56:44

从您的问题来看,似乎没有必要将查询建立在Inventory之上。这篇文章与零件编号相匹配,每一篇文章都包含一个相关库存的列表。

简单的查询将是

代码语言:javascript
复制
var parts = steelSheet.Select(s => s.Part).ToArray();
var matchingArticles = _context.Articles
    .Where(a => parts.Contains(a.Part))
    [.Select(a => [projection]]
    [.ToList()/.ToArray()];

只有在使用急切加载的情况下,才需要像.Include(a => a.Inventory)这样的东西。阅读这篇文章

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74233427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档