这种方式节省客户:
tb_clientes tb = new tb_clientes();
tb.clienteNOME = Cliente.clienteNOME;
tb.clienteCNPJ = Cliente.clienteCNPJ;
tb.clienteIE = Cliente.clienteIE;
tb.clienteENDERECO = Cliente.clienteENDERECO;
tb.clienteNUMERO = Cliente.clienteNUMERO;
tb.clienteCOMPLEMENTO = Cliente.clienteCOMPLEMENTO;
tb.clienteBAIRRO = Cliente.clienteBAIRRO;
tb.clienteCIDADE = Cliente.clienteCIDADE;
tb.clienteUF = Cliente.clienteUF;
tb.clienteOBS = Cliente.clienteOBS;
DB DB = new DB();
mydbEntities1 entidade = DB.contexto;
entidade.tb_clientes.Add(tb);
entidade.SaveChanges();
我有一个联系人表,它将向客户添加联系人。我必须在数据网格视图联系人中执行 foreach 并插入数据库。如何执行 foreach 以保存联系人?
不太确定我是否理解你的问题。 希望这有所帮助。
如果需要添加多个客户端,
tb_clientes tb = new tb_clients();
entidade.tb_clientes.Add(tb);
tb = new tb_clients(); //create another
entidade.tb_clientes.Add(tb); //add the 2nd one
entidade.SaveChanges(); // you only need to call this once to save all changes.
您还提到您有一个客户,并希望将客户添加到客户。 您必须设置客户,否则您的客户将保持孤立状态。
tb.Customer = yourCustomer;
如果您执行上述操作,并假设您的客户已经在上下文中,您将不需要此行
entidade.tb_clientes.Add(tb);
因为 EF 会知道你打算做什么,并自动将 tb 添加到上下文中。
您还可以将客户直接添加到客户
tb_clientes tb = new tb_clientes();
yourCustomer.Clients.Add(tb);
tb = new tb_clients(); //create another
yourCustomer.Clients.Add(tb); //add the 2nd one
entidade.SaveChanges();
针对OP评论的编辑
从图像来看,您似乎正在表之间创建多对多关系。您的tb_clients_contatos表将来是否包含有效负载? 如果没有,最简单的方法是删除contato_clientID列并使剩余的 2 列 PK。 如果此时更新 EF,它将自动创建多对多关系。 您不必处理此表,因为 EF 将以透明方式为您维护tb_clients_contatos。 这是新代码
tb_clientes tb = new tb_clientes();
yourCustomer.Clients.Add(tb); //you're done at this point.
//A row in tb_clients_contatos will automatically be inserted when you SaveChanges.
tb.Customers.Add(yourCustomer); //this will work too.
如果你的关系表确实需要有效负载,这里有一篇很好的帖子。 首先创建代码,多对多,并在关联表中使用其他字段