public static GetFieldDefaultValue ( string ObjName, string FieldName ) : object | ||
ObjName | string | |
FieldName | string | |
리턴 | object |
public static FilterDefinition <T> Ne(string ObjName, string FieldName, object Value) { object defaultValue = MongoMapperHelper.GetFieldDefaultValue(ObjName, FieldName); FieldName = MongoMapperHelper.ConvertFieldName(ObjName, FieldName); FilterDefinition <T> query = null; Type type = Value.GetType(); if (type.BaseType != null && type.BaseType.Name == "Enum") { type = typeof(int); } if (type == typeof(DateTime)) { query = Builders <T> .Filter.Ne(FieldName, (DateTime)Value); if (defaultValue != null && (DateTime)defaultValue != (DateTime)Value) { query = Builders <T> .Filter.Or(query, Builders <T> .Filter.Exists(FieldName, false)); } } else if (type == typeof(int)) { query = Builders <T> .Filter.Ne(FieldName, (int)Value); if (defaultValue != null && (int)defaultValue != (int)Value) { query = Builders <T> .Filter.Or(query, Builders <T> .Filter.Exists(FieldName, false)); } } else if (type == typeof(string)) { query = Builders <T> .Filter.Ne(FieldName, (string)Value); if (defaultValue != null && (string)defaultValue != (string)Value) { query = Builders <T> .Filter.Or(query, Builders <T> .Filter.Exists(FieldName, false)); } } else if (type == typeof(long)) { query = Builders <T> .Filter.Ne(FieldName, (long)Value); if (defaultValue != null && (long)defaultValue != (long)Value) { query = Builders <T> .Filter.Or(query, Builders <T> .Filter.Exists(FieldName, false)); } } else if (type == typeof(bool)) { query = Builders <T> .Filter.Ne(FieldName, (bool)Value); if (defaultValue != null && (bool)defaultValue != (bool)Value) { query = Builders <T> .Filter.Or(query, Builders <T> .Filter.Exists(FieldName, false)); } } else if (type == typeof(double)) { query = Builders <T> .Filter.Ne(FieldName, (double)Value); if (defaultValue != null && (double)defaultValue != (double)Value) { query = Builders <T> .Filter.Or(query, Builders <T> .Filter.Exists(FieldName, false)); } } return(query); }
public static FilterDefinition <T> Eq(string ObjName, string FieldName, object Value) { object defaultValue = MongoMapperHelper.GetFieldDefaultValue(ObjName, FieldName); FieldName = MongoMapperHelper.ConvertFieldName(ObjName, FieldName); FilterDefinition <T> query = null; Type type = Value.GetType(); if (type == typeof(BsonNull)) { query = Builders <T> .Filter.Eq(FieldName, BsonNull.Value); return(query); } if (type.BaseType != null && type.BaseType.Name == "Enum") { type = typeof(int); if ((int)Value < 0) { return(new BsonDocument()); } } if (type == typeof(string)) { bool isLike = false; string txtValue = Value.ToString(); if (txtValue.Trim() == "%") { return(new BsonDocument()); } if (txtValue.StartsWith("%") && txtValue.EndsWith("%")) { Value = String.Format("/{0}/", txtValue); isLike = true; } else if (txtValue.StartsWith("%")) { Value = String.Format("/{0}$/", txtValue); isLike = true; } else if (txtValue.EndsWith("%")) { Value = String.Format("/^{0}/", txtValue); isLike = true; } if (isLike) { query = Builders <T> .Filter.Regex(FieldName, new BsonRegularExpression(string.Format("{0}i", Value.ToString().Replace("%", "")))); return(query); } } if (type == typeof(DateTime)) { query = Builders <T> .Filter.Eq(FieldName, (DateTime)Value); if (defaultValue != null && (DateTime)defaultValue == (DateTime)Value) { query = Builders <T> .Filter.Or(query, Builders <T> .Filter.Exists(FieldName, false)); } } else if (type == typeof(int)) { query = Builders <T> .Filter.Eq(FieldName, (int)Value); if (defaultValue != null && (int)defaultValue == (int)Value) { query = Builders <T> .Filter.Or(query, Builders <T> .Filter.Exists(FieldName, false)); } } else if (type == typeof(string)) { query = Builders <T> .Filter.Eq(FieldName, (string)Value); if (defaultValue != null && (string)defaultValue == (string)Value) { query = Builders <T> .Filter.Or(query, Builders <T> .Filter.Exists(FieldName, false)); } } else if (type == typeof(long)) { query = Builders <T> .Filter.Eq(FieldName, (long)Value); if (defaultValue != null && (long)defaultValue == (long)Value) { query = Builders <T> .Filter.Or(query, Builders <T> .Filter.Exists(FieldName, false)); } } else if (type == typeof(bool)) { query = Builders <T> .Filter.Eq(FieldName, (bool)Value); if (defaultValue != null && (bool)defaultValue == (bool)Value) { query = Builders <T> .Filter.Or(query, Builders <T> .Filter.Exists(FieldName, false)); } } else if (type == typeof(double)) { query = Builders <T> .Filter.Eq(FieldName, (double)Value); if (defaultValue != null && (double)defaultValue == (double)Value) { query = Builders <T> .Filter.Or(query, Builders <T> .Filter.Exists(FieldName, false)); } } else if (type == typeof(Guid)) { query = Builders <T> .Filter.Eq(FieldName, (Guid)Value); if (defaultValue != null && (Guid)defaultValue == (Guid)Value) { query = Builders <T> .Filter.Or(query, Builders <T> .Filter.Exists(FieldName, false)); } } return(query); }