예제 #1
0
 public DbParamInfo(EntityCommandParameter owner, string name, int argIndex)
 {
     Owner        = owner;
     Name         = name;
     ArgIndex     = argIndex;
     DefaultValue = owner.DefaultValue;
 }
예제 #2
0
        public Func <object, string> ToLiteralConverter; //converter for template

        public DbParamInfo(EntityCommandParameter owner, string name, DbColumnInfo sourceColumn, int argIndex)
            : this(owner, name, argIndex)
        {
            SourceColumn = sourceColumn;
            Direction    = owner.Direction;
            TypeInfo     = sourceColumn.TypeInfo;
        }
예제 #3
0
        public EntityCommand BuildCrudInsertCommand(EntityInfo entity)
        {
            var cmd = AddCommand(entity.Name + "_Insert", "Inserts a new entity.", EntityCommandKind.Insert, entity);

            //Add PK first
            AddParametersFromKey(cmd, entity.PrimaryKey);
            // Add the rest
            foreach (var member in entity.Members)
            {
                if (member.Kind != MemberKind.Column || member.Flags.IsSet(EntityMemberFlags.DbComputed) ||
                    member.Flags.IsSet(EntityMemberFlags.PrimaryKey)) // PK is already added
                {
                    continue;
                }
                var prm = new EntityCommandParameter(member);
                cmd.Parameters.Add(prm);
            }
            // set param flags
            foreach (var prm in cmd.Parameters)
            {
                switch (prm.SourceMember.AutoValueType)
                {
                case AutoType.RowVersion:
                case AutoType.Identity:   prm.Direction = ParameterDirection.Output; break;

                default: prm.Direction = ParameterDirection.Input; break;
                }
            }
            return(cmd);
        }
예제 #4
0
 public EntityCommand BuildCrudInsertCommand(EntityInfo entity)
 {
     var cmd = AddCommand(entity.Name + "_Insert", "Inserts a new entity.", EntityCommandKind.Insert, entity);
       //Add PK first
       AddParametersFromKey(cmd, entity.PrimaryKey);
       // Add the rest
       foreach (var member in entity.Members) {
     if (member.Kind != MemberKind.Column || member.Flags.IsSet(EntityMemberFlags.DbComputed)
       || member.Flags.IsSet(EntityMemberFlags.PrimaryKey)) // PK is already added
       continue;
     var prm = new EntityCommandParameter(member);
     cmd.Parameters.Add(prm);
       }
       // set param flags
       foreach (var prm in cmd.Parameters) {
     switch(prm.SourceMember.AutoValueType) {
       case AutoType.RowVersion:
       case AutoType.Identity:   prm.Direction = ParameterDirection.Output; break;
       default: prm.Direction = ParameterDirection.Input; break;
     }
       }
       return cmd;
 }
예제 #5
0
 public DbParamInfo AddParameter(EntityCommandParameter owner, string name, DbTypeInfo typeInfo, int argIndex)
 {
     return(AddParameter(new DbParamInfo(owner, name, typeInfo, argIndex)));
 }
예제 #6
0
 public DbParamInfo AddParameter(EntityCommandParameter owner, string name, DbColumnInfo column, int argIndex)
 {
     return(AddParameter(new DbParamInfo(owner, name, column, argIndex)));
 }
예제 #7
0
 public DbParamInfo(EntityCommandParameter owner, string name, DbTypeInfo typeInfo, int argIndex) : this(owner, name, argIndex)
 {
     TypeInfo  = typeInfo;
     Direction = ParameterDirection.Input;
 }