hereの情報に基づいています。LINQを使用して汎用関数を作成する方法は?
Entity Frameworkで孤児を削除する方法が見つかりました。
私はそれが頻繁に使用される可能性があるため、この部分のための汎用関数を作る方法を思っていたpublic void SaveChanges()
{
context.ReportCards
.Local
.Where(r => r.Student == null)
.ToList()
.ForEach(r => context.ReportCards.Remove(r));
context.SaveChanges();
}
:
context.ReportCards
.Local
.Where(r => r.Student == null)
.ToList()
.ForEach(r => context.ReportCards.Remove(r));
私はこのような何かについて考えた:それ
public void SaveChanges()
{
RemoveOrphans(Student, ReportCards)
context.SaveChanges();
}
private void RemoveOrphans<T>(T sourceContext, T orphan)
{
context.orphan
.Local
.Where(r => r.sourceContext == null)
.ToList()
.ForEach(r => context.orphan
.Remove(r));
}
しかし、もちろん動作しません。何かアドバイス?
'WHERE'部分についてだけであなたはおそらく' context.Setを '使いたい –
TheLethalCoder
' Predicate'に渡します。 – juharr