Beispiel #1
0
 /// <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;
 }
Beispiel #2
0
 /// <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);
 }
Beispiel #3
0
            /// <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);
            }
Beispiel #4
0
 /// <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);
 }