public override PropertyValue GetValue(IEntity entity, IProperty property) { var enumProperty = property.As <EnumProperty>(); var value = entity.InternalGetValue(enumProperty.Reference); return(value.IsNullOrEmpty() ? null : PropertyValueHelper.NewValue(((Enum)value).GetDescription())); }
public override PropertyValue GetValue(IEntity entity, IProperty property) { var entityProperty = property.As <EntitySetProperty>(); var instanceName = GetInstanceName(entity, entityProperty.RelationType); var environment = GetEnvironment(entity); using (var context = new InternalContext(instanceName)) { context.Environment = environment; context.InstanceName = instanceName; var provider = context.CreateRepositoryProvider(entityProperty.RelationType); var expression = BuidRelationExpression(entity, entityProperty); object result = null; if (expression != null) { result = Execute(provider.Queryable, expression); var querySetType = typeof(EntitySet <>).MakeGenericType(entityProperty.RelationType); var list = querySetType.New(new[] { result }); //设置实体集所属的实体Owner list.As <IEntityRelation>(e => e.Owner = new EntityOwner(entity, property)); return(PropertyValueHelper.NewValue(list)); } return(PropertyValueHelper.NewValue(result)); } }
private void Condition(string field, object value, QueryOperator oper = QueryOperator.Equals) { if (m_parameters == null) { m_builder.AppendFormat(" {0} {1} {2}", Quote(field), GetOperatorChar(oper), ConvertValue(value)); } else { m_builder.AppendFormat(" {0} {1} {2}p{3}", Quote(field), GetOperatorChar(oper), m_syntax.ParameterPrefix, m_parameters.Count); var parameter = new Parameter(string.Format("p{0}", m_parameters.Count)); value.As <PropertyValue>(v => PropertyValueHelper.Set(v, parameter), () => parameter.Value = value); m_parameters.Add(parameter); } }
public override PropertyValue GetValue(IEntity entity, IProperty property) { var referenceProperty = property.As <ReferenceProperty>(); var instanceName = GetInstanceName(entity, referenceProperty.RelationType); var environment = GetEnvironment(entity); using (var context = new InternalContext(instanceName)) { context.As <IEntityPersistentEnvironment>(s => s.Environment = environment); context.As <IEntityPersistentInstanceContainer>(s => s.InstanceName = instanceName); var provider = context.CreateRepositoryProvider(referenceProperty.RelationType); var expression = BuidRelationExpression(entity, referenceProperty); object result = null; if (expression != null) { result = Execute(provider.Queryable, expression); } return(PropertyValueHelper.NewValue(result)); } }
private EntityQueryBuilder SetByInsert(params QueryValue[] values) { var flag = new AssertFlag(); m_builder.Append("("); var realValues = values.Where(s => s.Property is ISavedProperty); foreach (var value in realValues) { if (!flag.AssertTrue()) { m_builder.Append(", "); } m_builder.Append(QuoteColumn(value.Property)); } m_builder.Append(") VALUES("); flag.Reset(); foreach (var value in realValues) { if (!flag.AssertTrue()) { m_builder.Append(", "); } if (m_parameters == null) { m_builder.Append(ConvertValue(value.Value)); } else { m_builder.AppendFormat("{0}p{1}", m_syntax.ParameterPrefix, m_parameters.Count); var parameter = new Parameter(string.Format("p{0}", m_parameters.Count)); value.Value.As <PropertyValue>(v => PropertyValueHelper.Set(v, parameter), () => parameter.Value = value.Value); m_parameters.Add(parameter); } } m_builder.Append(")"); return(this); }