【问题标题】:How to associate tables on insert in LINQ?如何在 LINQ 中插入表时关联表?
【发布时间】:2012-08-24 22:45:17
【问题描述】:

假设我在客户和产品之间建立了 1:1 的关系。所以我要为两者添加一个表。在我的 LINQ to SQL 文件中,我用 .dbml 中的键和关联正确设置了所有内容。

现在我插入两个应该关联的表:

    CustomerDataContext dc = new CustomerDataContext();
    Table<Customer> customers = dc.GetTable<Customer>();
    Table<Product> products= dc.GetTable<Product>();

    Customer newCustomer = new Customer ();
    Product newProduct   = new Product();


    customers.InsertOnSubmit(newCustomer);
    products.InsertOnSubmit(newProduct);
    customers.Context.SubmitChanges();

那么此时我该如何建立关联呢?因此,当我查询此 Customer 表时,我可以调用关联的 Product,例如 Customer.Product?

这可能吗?

问候

【问题讨论】:

    标签: c# .net linq


    【解决方案1】:
    CustomerDataContext dc = new CustomerDataContext();
    Table<Customer> customers = dc.GetTable<Customer>();
    Table<Product> products= dc.GetTable<Product>();
    Table<ProductConsumer> ProductConsumers= dc.GetTable<ProductConsumer>();
    
    Customer newCustomer = new Customer ();
    Product newProduct   = new Product();
    
    
    customers.InsertOnSubmit(newCustomer);
    products.InsertOnSubmit(newProduct);
    customers.Context.SubmitChanges();
    products.Context.SubmitChanges();
    
    //Now insert associations
    ProductConsumer= new ProductConsumer();
    ProductConsumer.Consumer= newCustomer ;
    ProductConsumer.Product= newProduct  ;
    
    
    ProductConsumers.InsertOnSubmit(ProductConsumer)
    ProductConsumers.Context.SubmitChanges();
    

    【讨论】:

    • 您要提交多少次更改?一次还不够吗? :)
    • ProductConsumer 应该是什么?另一张桌子?
    • 是的,它是您的关联表(一列用于 consumerID,另一列用于 ProductID)
    • 所以我必须在每个表关联之间创建另一个表?
    • 我认为 LINQ 会以某种方式为我处理这个问题 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多