示例#1
0
		public void EvaluateSelect(DataExecutorContext context)
		{
			var parameter = context.Parameter as DataSelectParameter;

			if(parameter == null)
				return;

			var concept = context.MetadataManager.GetConceptContainer(parameter.ContainerName, parameter.Namespace);
			var entity = concept.Entities[parameter.ElementName];
			var mapping = context.MetadataManager.GetMapping(parameter.QualifiedName);

			
		}
		public IEnumerable<ExecutionPipeline> SelectPipelines(DataExecutorContext context, IEnumerable<ExecutionPipeline> pipelines)
		{
			if(context == null)
				yield break;

			if(pipelines == null)
				pipelines = context.Executor.Pipelines;

			switch(context.Action)
			{
				case DataAccessAction.Execute:
					foreach(var pipeline in pipelines)
					{
						yield return pipeline;
					}
					break;
				case DataAccessAction.Count:
				case DataAccessAction.Select:
					foreach(var pipeline in pipelines)
					{
						var dataHandler = pipeline.Handler as IDataHandler;

						if(dataHandler != null && (dataHandler.AccessMode & DataAccessMode.Read) == DataAccessMode.Read)
							yield return pipeline;
					}
					break;
				case DataAccessAction.Delete:
				case DataAccessAction.Insert:
				case DataAccessAction.Update:
					foreach(var pipeline in pipelines)
					{
						var dataHandler = pipeline.Handler as IDataHandler;

						if(dataHandler != null && (dataHandler.AccessMode & DataAccessMode.Write) == DataAccessMode.Write)
							yield return pipeline;
					}
					break;
			}

			yield break;
		}
示例#3
0
		public void Evaluate(DataExecutorContext context)
		{
		}
		public string BuildCore(DataExecutorContext context)
		{
			var text = new StringBuilder();
			var parameter = context.Parameter as DataSelectParameter;
			var entries = DataUtility.GetInherits(parameter.QualifiedName, parameter.Scope).ToArray();
			var list = new List<DataUtility.DataEntry>(entries);

			foreach(var entry in entries)
			{
				var joins = DataUtility.GetOnetoOne(entry.ConceptEntity, entry.ConceptProperties);
				list.AddRange(joins);
			}

			this.GenerateSelectFromClause(text, list);

			return text.ToString();
		}