私は2つのエンティティ間に多対多の関係を持っています。 UserInfoとCampaignと3番目の表UserInfoCampaignsLinq to SQL ManyToMany既存のレコードを更新する
フロントエンドでは、複数のチェックボックスを使用してユーザーキャンペーンを更新できるはずです。
だから私は持っている:
var selectedCampaignsIds = new int[] {1,2,3}
var user = _extendedUserService.GetUser(new Guid(userId));
var newCampaigns =_campaignrepository.GetAllCampaignsByIds(selectedCampaignsIds);
私は以下のことで、新たに選択したキャンペーンを割り当てることができます。
foreach (var campaign in newCampaigns)
{
var userInfoCampaign = new UserInfoCampaign { UserInfoId = user.Id, CampaignId = campaign.Id };
_campaignrepository.SaveUserInfoCampaign(userInfoCampaign);
}
私の質問は私が行う方法ですユーザーに既存のキャンペーンがあるかどうかを考慮した最新のUserInfoキャンペーン
既存のUserInfoCampaignをすべて削除してから、新しいUserInfoCampaignを再割り当てしますか?または、LINQ to SQLを使用してUserInfoキャンペーンを最初に削除せずにUserInfoキャンペーンを更新するより最適な方法がありますか?
ありがとうございます。
これが最も簡単な方法です。削除されたレコードの削除をコミットするという問題を解決します。それ以外の場合は、いくつかのユーザーインシデントを持つキャンペーンを保持しますが、削除する必要のある古いユーザーインシデントは無期限に残ります。 –