Если я правильно понял ваш вопрос и обновления ...
Мне кажется, у вас есть свойство:
private static CorporateCalendarDataContext CorporateCalendarDataContext {
get {
var dc = new CorporateCalendarDataContext(); //"param1", "param2", "param3");
return dc;
}
}
, поэтому каждый раз, когда вы получаете это свойство, вы получаетеновый экземпляр контекста, созданный таким образом, хотя эти две строки, например:
var activecommcontacts = CorporateCalendarDataContext.ActiveCommunicationContacts.Where(p=>systemUserMinistries.Contains(p.MinistryId)).Select(p => p);
var distinctcomm = CorporateCalendarDataContext.ActiveDistinctCommunicationContacts.Select(r => r);
, используют одно и то же свойство, они будут иметь другой контекст, отсюда и исключение, которое вы видите.
ВыВам нужно хранить контекст дольше, чем вы, поэтому сделайте это:
var context = CorporateCalendarDataContext;
var activecommcontacts = context.ActiveCommunicationContacts.Where(p=>systemUserMinistries.Contains(p.MinistryId)).Select(p => p);
var distinctcomm = context.ActiveDistinctCommunicationContacts.Select(r => r);
// This context should be used for anything that you want to join together in the same query ...
или сделайте так, чтобы это свойство сохраняло контекст после его создания, например:
private static CorporateCalendarDataContext _context;
private static CorporateCalendarDataContext CorporateCalendarDataContext {
get {
if(_context == null)
_context = new CorporateCalendarDataContext(); //"param1", "param2", "param3");
return _context;
}
}
Что бы вы ни чувствовали себя более довольным, и это соответствует дизайну вашего приложения.
Я обеспокоен тем, что это статическое свойство, поэтому последний подход может вызвать дополнительные проблемы, если вы сохраняете контекст слишком долго.
Вы должны быть осторожны с контекстами данных и их временами жизни, поскольку они хитры, но о них доступно много информации.Взгляните на эту статью в блоге, например: Best Entity Framework Lifetime Best Practices и этот пост: Как определить время жизни для вашего объектаcontext .