私は何を試しても、これを動作させることはできません。Insert Allは最後のレコードのみを挿入しますか? LINQ to SQL
これは私の場合は最後のレコードセットのみを挿入するのと同じ質問です。InsertAllOnSubmit only inserts first data record
ID
列を更新するために、プライマリキーがDateTime.UtcNow.Ticks
を使用して手動設定として設定されていませんでした。しかし、SQL Serverの設定を変更した後は、手動でプライマリキーを設定することができました。
これで問題は解決しますが、現在はプライマリキーが更新されますが、最後のレコードはforeach
ループに挿入されます。
私はDbml
を削除して再作成しようとしましたが、何もしませんでした。
これはリストだけList<T>
で最後のデータセットを残して追加された後の値を上書きされることは、サーバー上の設定があるようですが、
List<Tenant_Bills_TBL> addNewData = new List<Tenant_Bills_TBL>();
Tenant_Bills_TBL addBill = new Tenant_Bills_TBL();
var recordsForTenant = Database.GetBillsRecordsForTenant(Database.DataContext, SelectedTenant.Code);
foreach (var item in recordsForTenant)
{
addBill.ID = DateTime.UtcNow.Ticks;
addBill.Tenant_Code = SelectedTenant.Code;
addBill.Year_Data = DateFilter.Year;
addBill.Month_Data = DateFilter.Month;
addBill.Tenant_Bill = item.Tenant_Bill;
addBill.Bill_Amount = item.Bill_Amount;
addBill.Bill_Quantity = item.Bill_Quantity;
addNewData.Add(addBill);
}
Database.DataContext.Tenant_Bills_TBLs.InsertAllOnSubmit(addNewData);
Database.DataContext.SubmitChanges();
私が使用していたコードです私が変える必要がある側か、それとも何か他の人ですか?
この行 'Tenant_Bills_TBL addBill = new Tenant_Bills_TBL();'は 'foreach'ループ内にある必要があります。 –
@ZoharPeledありがとう、それはトリックでした。あなたがそれを答えにしたいなら、私はUVとマークを解決します。乾杯。ところで、 'foreach'が速く動いて、同じ主キー値を作成していたので、DateTimeティックをインクリメントする必要がありました。 – KyloRen