Ejemplo n.º 1
0
 public virtual string GetCascadeDeleteSql(PropertyInfo oneToManyProp)
 {
     StringBuilder sb = new StringBuilder();
     sb.Append("delete from ");
     sb.Append(oneToManyProp.PropertyType.GetGenericArguments()[0].GetTableAttribute().Name);
     sb.Append(" where ");
     sb.Append(oneToManyProp.GetOneToManyAttribute().InverseForeignKey);
     sb.Append("=?");
     return sb.ToString();
 }
Ejemplo n.º 2
0
 public virtual string GetDeleteItemSql(PropertyInfo oneToManyProp, int countLeft)
 {
     StringBuilder sb = new StringBuilder();
     Type elementType = oneToManyProp.PropertyType.GetGenericArguments()[0];
     sb.Append("delete from ");
     sb.Append(elementType.GetTableAttribute().Name);
     sb.Append(" where ");
     sb.Append(oneToManyProp.GetOneToManyAttribute().InverseForeignKey);
     sb.Append("=?");
     if (countLeft > 0)
     {
         sb.Append(" and ");
         sb.Append(elementType.GetIdProperty().GetColumnAttribute().Name);
         sb.Append(" not in (" + "?, ".Repeat(countLeft));
         sb.Remove(sb.Length - 2, 2);
         sb.Append(")");
     }
     return sb.ToString();
 }
Ejemplo n.º 3
0
 public virtual string GetLoadOneToManyPropertySql(PropertyInfo prop, bool enableLazy, out Dictionary<string, string> resultMap)
 {
     StringBuilder sb = new StringBuilder();
     sb.Append(prop.GetOneToManyAttribute().InverseForeignKey);
     sb.Append("=?");
     return GetSelectSql(prop.PropertyType.GetGenericArguments()[0], enableLazy, out resultMap, sb.ToString());
 }
Ejemplo n.º 4
0
 public virtual string GetUpdateForeignKeySql(PropertyInfo oneToManyProp, int countLeft)
 {
     if (countLeft <= 0)
         throw new ArgumentOutOfRangeException("countLeft应大于0。", countLeft, "countLeft");
     StringBuilder sb = new StringBuilder();
     Type elementType = oneToManyProp.PropertyType.GetGenericArguments()[0];
     sb.Append("update ");
     sb.Append(elementType.GetTableAttribute().Name);
     sb.Append(" set ");
     sb.Append(oneToManyProp.GetOneToManyAttribute().InverseForeignKey);
     sb.Append("=? where ");
     sb.Append(elementType.GetIdProperty().GetColumnAttribute().Name);
     sb.Append(" in (" + "?, ".Repeat(countLeft));
     sb.Remove(sb.Length - 2, 2);
     sb.Append(")");
     return sb.ToString();
 }
Ejemplo n.º 5
0
 private static bool NeedProxy(PropertyInfo prop, bool enableLazy, bool enforceLazy)
 {
     ColumnAttribute col = prop.GetColumnAttribute();
     if (col != null && col.LazyLoad && enableLazy)
     {
         return true;
     }
     ManyToOneAttribute manyToOne = prop.GetManyToOneAttribute();
     if (manyToOne != null && (manyToOne.LazyLoad && enableLazy || enforceLazy))
     {
         return true;
     }
     OneToManyAttribute oneToMany = prop.GetOneToManyAttribute();
     if (oneToMany != null && (oneToMany.LazyLoad && enableLazy || enforceLazy))
     {
         return true;
     }
     ManyToManyAttribute manyToMany = prop.GetManyToManyAttribute();
     if (manyToMany != null && (manyToMany.LazyLoad && enableLazy || enforceLazy))
     {
         return true;
     }
     return false;
 }