// 这里没有直接使用下面的Data实例,而是使用了上面的索引, // 是为了防止对象被DeepClone时把数据库也Clone了。 // private EntityCollection _data = DataSet[_zone]; public MemoryRepoProvider(TypeZone zone = null) { _zone = zone ?? TypeZone.Empty; if (!DataSet.ContainsKey(_zone)) { DataSet.Add(_zone, new EntityCollection()); } }
public Repository NewRepo(TypeZone zone = null) { var provider = SelectProvider(zone); if (provider == null) { throw new NotImplementedException(string.Format("不支持此类型‘{0}’的Provider", Conf.ProviderType.Name)); } return(new Repository(provider)); }
protected abstract IRepoProvider SelectProvider(TypeZone zone = null);