作为我正在创建的 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 更聪明?我想 2-way 链接 DomainDataSource 是要走的路,但是直接从 DomainContext 中提取静态数据是否有害/愚蠢?
任何见解都值得赞赏;我对 Silverlight 还是很陌生,所以如果这是米老鼠的东西,我很抱歉。
谢谢!