0

以这种方式拯救客户:

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();

我有一个联系人表,它将向客户添加联系人。我必须在 datagridview 联系人中进行 foreach 并插入数据库。我怎样才能做一个foreach来保存联系人?

4

1 回答 1

0

不太确定我是否理解你的问题。希望这会有所帮助。
如果您需要添加多个客户端,

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.

如果您的关系表确实需要有效负载,这里有一篇很好的文章。 首先创建代码,多对多,关联表中的附加字段

于 2013-10-14T22:27:50.710 回答