Ejemplo n.º 1
0
        /// <inheritdoc/>
        public override void Inititalze(DbExpression content = null)
        {
            base.Inititalze(content);
            if (Table.InheritSets.Length > 0 && Statement.DbSet.Name != null)
            {
                throw new NotSupportedException(Res.NotSupportedInheritSetUsingDbName);
            }
            var item = ((DbUnitTypeExpression)content).Item;

            if (Operate.Type == EOperateType.DeleteStatement)
            {
                if (item is DbUnitItemContentExpression itemcontent)
                {
                    item = itemcontent.Content;
                }
                if (item.ExpressionType != EExpressionType.DataItem)
                {
                    throw new GenerateException(Res.ExceptionUnitItemIsMustDataItem);
                }
            }
            else
            {
                if (!(content is DbSelectExpression unittype))
                {
                    throw new ArgumentException(Res.ExceptionInsertContentIsSelect, nameof(content));
                }
                if (!(item is DbNewExpression newitem))
                {
                    throw new GenerateException(Res.ExceptionInsertItemIsMustNew);
                }
            }
            ItemEpxression = item;
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 创建分组项表达式。
 /// </summary>
 /// <param name="unititem">单元项表达式。</param>
 public DbGroupItemExpression(DbUnitItemTypeExpression unititem)
     : base(unititem.ClrType)
 {
     Source = unititem;
     Item   = new DbDataItemExpression(unititem.ClrType)
     {
         Unit = this
     };
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 创建数据项内容表达式。
 /// </summary>
 /// <param name="content">当前内容表达式。</param>
 public DbUnitItemContentExpression(DbUnitItemTypeExpression content)
     : base(content.ClrType)
 {
     Content = content;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 创建分组并连接表达式。
 /// </summary>
 /// <param name="source">源表达式。</param>
 /// <param name="target">目标表达式。</param>
 /// <param name="left">左端键表达式。</param>
 /// <param name="right">右端键表达式。</param>
 /// <param name="newExp">当前连接后输出的新对象表达工。</param>
 public DbGroupJoinExpression(DbUnitTypeExpression source, DbUnitTypeExpression target, DbExpression left, DbExpression right, DbUnitItemTypeExpression newExp)
     : base(source, target, left, right, newExp)
 {
 }