次のテーブル構造があるとします。
患者 -> 患者タグ -> タグ
患者とタグ間の典型的な N:M 関係で、PatientTag は両方の FK を持つ中間エンティティです。(PatientId および TagId)。
特定のタグを削除したいのですが、その ID があります。私はこれを行っていますが、より良い方法があるかどうかを知りたいです。これらは PLINQO を使用して記述した最初のメソッドであるため、最初から悪いプラクティスを作成したくありません。
using ( MyDataContext dc = DataContextFactory.GetDataContext() )
{
var options = new DataLoadOptions();
options.LoadWith<Paciente>(p => p.PacienteTagList);
options.LoadWith<PacienteTag>(pt => pt.Tag);
dc.LoadOptions = options;
// Get the Tag we're going to remove from the DB.
var tag = dc.Manager.Tag.GetByKey( idTag);
// Remove each patient from the association.
foreach ( Paciente pac in tag.PacienteList1 )
{
// we need to retrieve it, won’t let us use the ‘pac’ object.
var pax = dc.Manager.Paciente.GetByKey( pac.IdPaciente );
pax.TagList.Remove(tag);
}
// now remove the tag
dc.Manager.Tag.Delete(tag.TagId);
// And commit the changes
dc.SubmitChanges();
}
この件に関する洞察をありがとう。