gpt4 book ai didi

c# - 如何使用 Entity Framework 获取 ms sql db 中的现有项目集合

转载 作者:行者123 更新时间:2023-11-30 22:20:34 24 4
gpt4 key购买 nike

我刚刚开始探索 Entity Framework,它真的很棒!但现在我有疑问了。在我的数据库“Products”中,我有表的 Product、Component、Product_Component(它是多对多连接)。我在我的 c# 项目中创建了一个 .edmx 文件并选择了这 3 个表。现在,我可以在表的列表框中看到项目,例如,我可以使用

查看 Products 表的所有行
ProductsEntities db = new ProductsEntities();
LstBox.ItemsSource = db.Product;

但是所有的 Product 都有 Components 的集合,我想绑定(bind)例如 Components 集合,它们在我的 Product 在索引 2 上。(表 Product 中的产品“蛋糕”具有 Component 的“suqar”、“salt”、“flour”)。我怎样才能做这个东西?我试图通过索引获取 Product,但它不起作用。也许这是一个愚蠢的问题,抱歉,但请帮忙。

最佳答案

为什么不能从 Product --> Component 1xProduct-->Many Components 建立直接关系。为什么需要 Product_Component。如果你像我说的那样做,你可以很容易地得到你想要的东西:

db.Products.First(e=>e.Id==2).Components.ToList();

将获取id = 2的产品组件列表;

编辑:

这样使用

List<Component> components = new List<Component>();
db.Products.First(e=>e.Id==2).Product_Components.ToList().ForEach(e=>components.Add(e.Component));

向产品添加新组件:

Product someProduct = db.Product.First(e=>e.Name=="coolProduct")
Component component = db.Component.First(e=>e.Name=="Fish");
someProduct.Product_Component.Add(new Product_Component(){Component=component...});
db.SaveChanges();

向产品添加新组件的新方法:

Product someProduct = db.Product.First(e=>e.Name=="coolProduct")
Component component = db.Component.First(e=>e.Name=="Fish");
Component_Product component_product = new Component_Product(){Component = component, Product = product};
db.SaveChanges();

新-新解决方案:

Product someProduct = db.Product.First(e=>e.Name=="coolProduct")
Component component = db.Component.First(e=>e.Name=="Fish");
Component_Product component_product = new Component_Product(){Component = component, Product = product};
db.Component_Product.Add(component_product);
db.SaveChanges();

关于c# - 如何使用 Entity Framework 获取 ms sql db 中的现有项目集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14891042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com