2013-10-14 71 views
0

“M节省了客户这样说:环保存客户和联系人ado.net实体模型

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来保存联系人?

回答

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. 

您也提到你有一个客户,想clientes添加到客户。您必须设置客户,否则您的客户将保持孤立。

tb.Customer = yourCustomer; 

如果你做到以上,并假设yourCustomer已经在上下文中,您将不再需要这一行

entidade.tb_clientes.Add(tb); 

由于EF会知道你打算做并自动添加TB到上下文为你。

您也可以响应OP的评论

从您的图片,它看起来像你所创建的表之间的多对多关系直接添加clientes客户

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

编辑。 您的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. 

如果你的关系表确实需要有效载荷,这里有一个很好的职位。 Create code first, many to many, with additional fields in association table

+0

我必须为同一个客户保存一个客户和多个联系人。以下的打印屏幕将帮助您理解。 http://s18.postimg.org/uf20ae8ix/foto1.jpg http://s18.postimg.org/bcn817mw9/foto2.jpg http://s18.postimg.org/fkdew7yy1/foto3。 jpg – mauriciosouza

+0

我认为如果你可以发布你的代码,这也会很有帮助。有可能你甚至不需要循环来保存。你的模型也显示了许多或至少2个一对多的关系。但是你的帖子表明你只需要一个多。改变模型可能会更好。 – user2880486