Example #1
0
        private SqlFragment GenerateForMaintenanceCreateRelation(GenerateContext context)
        {
            var operate  = (DbCreateDropRelationOperate)context.Data.Operate;
            var fragment = new CreateRelationFragment(context, operate.ForeignName)
            {
                Foreign       = new ObjectNameFragment(context, operate.Foreign.Name, operate.Foreign.Schema),
                Principal     = new ObjectNameFragment(context, operate.Principal.Name, operate.Principal.Schema),
                ForeignKeys   = operate.Pairs.Select(a => a.ForeignKey.Name).ToArray(),
                PrincipalKeys = operate.Pairs.Select(a => a.PrincipalKey.Name).ToArray()
            };

            return(fragment);
        }
        /// <summary>
        /// 生成创建关系语句片段。
        /// </summary>
        /// <param name="context">生成上下文。</param>
        /// <returns>语句片段。</returns>
        protected virtual SqlFragment GenerateForMaintenanceCreateRelation(GenerateContext context)
        {
            var operate  = (DbCreateDropRelationOperate)context.Data.Operate;
            var name     = context.ConvertName(operate.Name);
            var fragment = new CreateRelationFragment(context, name)
            {
                Foreign       = new ObjectNameFragment(context, operate.Foreign.Name, operate.Foreign.Schema),
                Principal     = new ObjectNameFragment(context, operate.Principal.Name, operate.Principal.Schema),
                ForeignKeys   = operate.Pairs.Select(a => a.ForeignKey.Name).ToArray(),
                PrincipalKeys = operate.Pairs.Select(a => a.PrincipalKey.Name).ToArray()
            };

            if (operate.Action != null)
            {
                var action = operate.Action;
                fragment.Update = action.Update;
                fragment.Delete = action.Delete;
            }
            return(fragment);
        }