Я пытаюсь написать общий код для отключения класса linq. Что у меня сейчас есть:
public void Detach()
{
this.PropertyChanged = null;
this.PropertyChanging = null;
this.Categories = default(EntitySet<Categories>);
this.Jobs = default(EntitySet<Jobs>);
this.Tasks= default(EntitySet<Tasks>);
}
Это все нормально, однако в моей базе данных есть несколько сотен таблиц, и это было бы трудоемкой задачей, чтобы сделать это специально для каждой из них. То, что я ищу, является чем-то общим, что я могу в значительной степени использовать для каждого определения класса, подобного:
public void Detach()
{
this.PropertyChanged = null;
this.PropertyChanging = null;
foreach (System.Reflection.PropertyInfo _prop in this.GetType().GetProperties())
{
// if _prop is of type EntitySet<T> then set it to default(EntitySet<T>);
// TODO: Complete the code here
}
}
Я не уверен, как написать код для выполнения задачи, описанной в комментарии. Можно ли это сделать, или я пытаюсь сделать что-то, что просто невозможно сделать в текущей структуре?
Редактировать: изменил EntityRef на EntitySet.