如何使用实体框架插入多个值..?

时间:2013-02-21 12:36:05

标签: entity-framework mvvm silverlight-5.0

我正在使用Silverlight5和MVVM框架以及实体框架。在我的项目中我有一个疑问..

我有一个名为'Customer'的实体结构如下..

Customer ocustomer = new Customer(); 
ocustomer.CustomerName = customername; 
ocustomer.CompanyName = company; 
ocustomer.AddressLine1 = address1; 
ocustomer.AddressLine2 = address2; 
ocustomer.City = city; 
ocustomer.State = state; 
ocustomer.Country = country; 
ocustomer.ZipCode = zipcode; 
ocustomer.Notes = note; 

_context.Customers.Add(ocustomer);

现在我需要将Customer值插入另一个名为Customer_Entity的表

     Customer_Entity ocustomerEntity=new Customer_Entity ();
     ocustomerEntity.CustomerID=Customer_ID;
     ocustomerEntity.EntityTypeID =1;
     .
     .
     .
     .
     ocustomerEntity.CreatedTime =System.DateTime.Now;
     ocustomerEntity.CreatedBy=Common.ActiveData.Instance.userid; 

我需要在每一行中将Customer值插入Customer_Entity。 Customer_Entity表结构如下,

EntityID| CustomerID| EntityValue|
----------------------------------                                                                                                 
1       | 22        |jasper      |                                                                                  
2       | 22        |Company:Raj |
3       | 22        |Address     |

ocustomer.CustomerName=customername
.
.
.
ocustomer.CreatedTime=system.DateTime.Now..

所以我需要使用唯一的CustomerID在每一行中插入所有值。 需要帮助才能解决这个问题..

1 个答案:

答案 0 :(得分:1)

CustomerEntity对象上,您应该有一个指向相应Customer记录的导航属性。同样,我希望您的Customer课程上也有CustomerEntity的集合。

在这种情况下,您应该实例化Customer对象,填充必要的信息。但是,不要将它添加到DbSet中。然后,创建所需的所有CustomerEntity条记录,使用导航属性本身将其连接到Customer对象(即 NOT ID字段),然后添加CustomerEntity记录到Context类中的相应DbSet。

最后一步是将Customer对象添加到相应的DbSet,然后运行SaveChanges。你应该好好去。实体框架应自动为您生成ID并将其填充到CustomerEntity记录中。