Как часть приложения WCF RIA, которое я создаю, я бы хотел кешировать кучу статических вспомогательных данных локально (списки систем водоснабжения, стран, провинций и тому подобное). Я создал простой статический класс для кэширования списков в (LocalStateContainer.cs).
Пример:
public static class LocalStateContainer
{
private static IEnumerable _waterSystems;
public static IEnumerable WaterSystems
{
get
{
if (_waterSystems== null)
{
DomainDataSource ds = new DomainDataSource();
Web.SuperDomainContext d = new Web.SuperDomainContext();
ds.DomainContext = d;
ds.QueryName = "GetWaterSystems";
ds.Load();
_waterSystems = ds.Data;
}
return _waterSystems;
}
}
}
Разумно ли использовать DomainDataSource таким образом? Не мог бы я так же легко пойти:
public static class LocalStateContainer
{
private static IEnumerable _waterSystems;
public static IEnumerable WaterSystems
{
get
{
if (_waterSystems== null)
{
Web.SuperDomainContext d = new Web.SuperDomainContext();
_waterSystems = from w in d.WaterSystems select w;
}
return _waterSystems;
}
}
}
В более широком смысле, когда разумно использовать DomainDataSource для получения данных по сравнению с непосредственным доступом к DomainContext? Я полагаю, что двухстороннее связывание с DomainDataSource - это путь, но вредно / глупо вытащить статические данные непосредственно из DomainContext?
Любое понимание приветствуется; Я все еще очень новичок в Silverlight, поэтому извиняюсь, если это микки маус.
Спасибо!