/// <summary> /// 创建重复语句块。 /// </summary> /// <param name="context">生成上下文。</param> /// <param name="items">数据项集合。</param> /// <param name="loader">属性值加载器。</param> /// <param name="block">重复的语句块。</param> public RepeatBlockFragment(GenerateContext context, IEnumerable items, IPropertyValueLoader loader = null, BlockFragment block = null) : base(context) { Block = block ?? new BlockFragment(context); Items = items; Loader = loader; }
/// <summary> /// 添加成员参数。 /// </summary> /// <param name="member"></param> /// <param name="loader"></param> /// <param name="index"></param> /// <returns></returns> public string AddParameter(ColumnMetadata member, IPropertyValueLoader loader, int index) { if (_ParameterBody.TryGetValue(member.Member, out ParameterBody value)) { return(value.Parameter.ParameterName); } _Loader = loader; value.Parameter = CreateParameter(null); value.Index = index; _ParameterBody.Add(member.Member, value); return(value.Parameter.ParameterName); }
/// <summary> /// 添加数据成员参数。 /// </summary> /// <param name="member">注册成员。</param> /// <param name="loader">加载器。</param> /// <param name="index">取值索引。</param> /// <returns>参数名。</returns> public string AddParameter(ColumnMetadata member, IPropertyValueLoader loader = null, int index = -1) { var para = CreateParameter(null); var value = new ParameterBody() { Parameter = para, Metadata = member }; if (loader == null) { para.Direction = ParameterDirection.Output; ReturnParameters.Add(value); } else { Loader = loader; value.Index = index; MemberParameters.Add(value); } Parameters.Add(para); return(para.ParameterName); }
/// <summary> /// 初始化提交成员。 /// </summary> /// <param name="context">生成上下文。</param> /// <param name="loader">属性值加载器。</param> /// <param name="owner">成员所有者。</param> /// <param name="property">成员属性。</param> public CommitMemberFragment(GenerateContext context, IPropertyValueLoader loader, ISourceFragment owner, MemberInfo property) : base(context, owner, property) { Loader = loader; Index = loader.IndexOf(property); }