0

MVVMフレームワークとEntityFrameworkでSilverlight5を使用しています。私のプロジェクトでは、1つの疑問があります。

'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_Entityにcustomer値を挿入することです。Customer_Entityテーブルの構造は次のとおりです。

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

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

したがって、一意のCustomerIDを使用してすべての行にすべての値を挿入する必要があります。これを解決するにはヘルプが必要です。

4

1 に答える 1

1

オブジェクトには、対応するレコードCustomerEntityを指すナビゲーションプロパティが必要です。Customer同様に、あなたのCustomerクラスにもコレクションがあると思いますCustomerEntity

この場合、必要な情報を入力して、Customerオブジェクトをインスタンス化する必要があります。ただし、まだDbSetに追加しないでください。その後、必要なすべてのCustomerEntityレコードを作成Customerし、ナビゲーションプロパティ自体(つまりIDフィールドではないCustomerEntity)を使用してオブジェクトに接続し、そのレコードをContextクラスの対応するDbSetに追加します。

最後のステップとして、Customerオブジェクトを対応するDbSetに追加し、SaveChangesを実行します。あなたは行ってもいいはずです。Entity Frameworkは自動的にIDを生成し、CustomerEntityレコードに入力する必要があります。

于 2013-02-21T14:40:56.250 に答える