public static void TryAddRepository(Type repositoryType) { var attri = repositoryType.GetSingleAttribute<RepositoryForAttribute>(); if (attri != null) { Type entityType = attri.EntityType; var listType = Convention_ListForEntity(entityType); var item = new EntityMatrix(entityType, listType, repositoryType); Add(item); } }
public static void TryAddRepository(Type repositoryType) { var attri = repositoryType.GetSingleAttribute <RepositoryForAttribute>(); if (attri != null) { Type entityType = attri.EntityType; var listType = Convention_ListForEntity(entityType); var item = new EntityMatrix(entityType, listType, repositoryType); Add(item); } }
private static EntityMatrix FastFindByRepositoryType(Type repositoryType) { try { _rwLock.EnterReadLock(); EntityMatrix item = null; _repositoryIndex.TryGetValue(repositoryType, out item); return(item); } finally { _rwLock.ExitReadLock(); } }
private static EntityMatrix FastFindByListType(Type listType) { try { _rwLock.EnterReadLock(); EntityMatrix item = null; _listIndex.TryGetValue(listType, out item); return(item); } finally { _rwLock.ExitReadLock(); } }
/// <summary> /// 通过实体类找到约定项 /// </summary> /// <param name="entityType"></param> /// <returns></returns> public static EntityMatrix FindByEntity(Type entityType) { if (entityType == null) { throw new ArgumentNullException("entityType"); } var item = FastFindByEntityType(entityType); if (item == null) { var listType = Convention_ListForEntity(entityType); var rpType = Convention_RepositoryForEntity(entityType); item = new EntityMatrix(entityType, listType, rpType); Add(item); } return(item); }
/// <summary> /// 通过仓库类找到约定项 /// </summary> /// <param name="repositoryType"></param> /// <returns></returns> public static EntityMatrix FindByRepository(Type repositoryType) { if (repositoryType == null) { return(null); } var item = FastFindByRepositoryType(repositoryType); if (item == null) { var entityType = Convention_EntityForRepository(repositoryType); var listType = Convention_ListForEntity(entityType); item = new EntityMatrix(entityType, listType, repositoryType); Add(item); } return(item); }
private static void Add(EntityMatrix item) { try { _rwLock.EnterReadLock(); if (!_entityIndex.ContainsKey(item.EntityType)) { _entityIndex.Add(item.EntityType, item); if (item.ListType != null) { _listIndex.Add(item.ListType, item); } if (item.RepositoryType != null) { _repositoryIndex.Add(item.RepositoryType, item); } } } finally { _rwLock.ExitReadLock(); } }
/// <summary> /// 通过列表类找到约定项 /// </summary> /// <param name="listType"></param> /// <returns></returns> public static EntityMatrix FindByList(Type listType) { if (listType == null) throw new ArgumentNullException("listType"); var item = FastFindByListType(listType); if (item == null) { var entityType = Convention_EntityForList(listType); var rpType = Convention_RepositoryForEntity(entityType); item = new EntityMatrix(entityType, listType, rpType); Add(item); } return item; }
/// <summary> /// 通过仓库类找到约定项 /// </summary> /// <param name="repositoryType"></param> /// <returns></returns> public static EntityMatrix FindByRepository(Type repositoryType) { if (repositoryType == null) return null; var item = FastFindByRepositoryType(repositoryType); if (item == null) { var entityType = Convention_EntityForRepository(repositoryType); var listType = Convention_ListForEntity(entityType); item = new EntityMatrix(entityType, listType, repositoryType); Add(item); } return item; }