Aknittel
これらのテーブル(tblSellerListingsおよびtblSellers)は、正式には外部キー関係と結合されていません(tblSellerListingsおよびtblSellers)。モデルやデータベースで、私は将来のために維持され、いくつかの参照整合性を求めています。私の問題が残っているので。なぜ私はこのコードで({「同じキーを持つ項目が既に追加されています。」})例外を得るのですか私は新しいのObjectContextでforeachループの各反復を開始し、私はパフォーマンスに影響を与えるだろうと思うのSaveChanges、とそれを終了しない場合ORCSolutionsDataService.tblSellerListings(ADO.NETののDataServices/WCFオブジェクトである理由、また、あなたは私に言うことができます??この例外はなぜ発生しますか? {})
エンティティへのLINQのようではないIDisposableを、=================== ===========================
// Add listings to previous seller
int NewSellerID = 0;
// Look up existing Seller key using SellerUniqueEBAYID
var qryCurrentSeller = from s in service.tblSellers
where s.SellerEBAYUserID == SellerUserID
select s;
foreach (var s in qryCurrentSeller)
NewSellerID = s.SellerID;
// Save the selected listings for this seller
foreach (DataGridViewRow dgr in dgvRows)
{
ORCSolutionsDataService.tblSellerListings NewSellerListing = new ORCSolutionsDataService.tblSellerListings();
NewSellerListing.ItemID = dgr.Cells["txtSellerItemID"].Value.ToString();
NewSellerListing.Title = dgr.Cells["txtSellerItemTitle"].Value.ToString();
NewSellerListing.CurrentPrice = Convert.ToDecimal(dgr.Cells["txtSellerItemPrice"].Value);
NewSellerListing.QuantitySold = Convert.ToInt32(dgr.Cells["txtSellerItemSold"].Value);
NewSellerListing.EndTime = Convert.ToDateTime(dgr.Cells["txtSellerItemEnds"].Value);
NewSellerListing.CategoryName = dgr.Cells["txtSellerItemCategory"].Value.ToString();
NewSellerListing.ExtendedPrice = Convert.ToDecimal(dgr.Cells["txtExtendedReceipts"].Value);
NewSellerListing.RetrievedDtime = Convert.ToDateTime(dtSellerDataRetrieved.ToString());
NewSellerListing.SellerID = NewSellerID;
service.AddTotblSellerListings(NewSellerListing);
}
service.SaveChanges();
}
キャッチ(例外EX) {MessageBox.Show ( "新しいケースを追加できません。例外: "+ ex.Message);
}
NewSellerListingの主キーとは何ですか?ところで、あなたは本当にあなたが直接あなたのクエリでそれを置くことができ、sellerIdを取得するための最初のforeachループを必要としません:NewSellerID =(s.SellerEBAYUserID == SellerUserIDがs.SellerIDを選択service.tblSellersで秒から)1次回( ); //もちろん、IDが見つからない場合は処理する必要がありますが、データベースの時間が節約されます。好奇心のうち – xandy
、なぜあなたはqryCurrentSellerでのforeachのvar sのをやっているし、常にNewSellerIDへの再割り当て値。 NewSellerIDは最初のforeachの最後の反復を取るだけでしょうか? –