Действительно неизменяемый словарь в .NET

Доброе утро, днем ​​или ночью,

Все еще строим На мой вопрос о неизменяемых словарях в .NET я задал следующий вопрос: если тогда TKey и TValue являются типами значений, вы можете создать словарь действительно неизменяемый, в том смысле, что ни его внутренняя структура, ни сами значения не могут измениться, если эти параметры являются ссылочными типами , ключи и значения могут быть легко изменены, тем самым изменяя сам словарь. Я прав?

Большое спасибо.

private static IQueryable SimulateJoinResults()
{
  return from r in SessionDataProvider.Instance.ResultDataContext.Results select r;
}
private static IQueryable SimulateJoinIclFileInfos()
{
  return from f in SessionDataProvider.Instance.ResultDataContext.IclFileInfos select f;
}
private static IQueryable SimulateJoinServerProfiles()
{
  return from sp in sessionProfileDataContext.ServerProfiles select sp;
}
private static IQueryable SimulateJoinUsers()
{
  return from u in infrastructureDataContext.Users select u;
}

Но даже такой подход не решил проблему. Я все еще получаю это сообщение в QuickWatch ... :

запрос содержит ссылки на элементы, определенные в другом контексте данных

Есть ли решение этой проблемы? Наряду с решением я также хотел бы знать, почему проблема все еще существует, и как именно новое решение устраняет ее, чтобы в следующий раз я мог сам решать такие проблемы. Кстати, я новичок в LINQ.

10
задан Community 23 May 2017 в 12:04
поделиться