public void DoubleParentCondition() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new Condition("Parent.Id", Expression.Equal, 3), new Condition("Parent.ObjData", Expression.Equal, "A")); ServerObjectCollection objects = transaction.Select(typeof(IdentityChildTestObject), query); Assert.AreEqual(2, objects.Count); IdentityChildTestObject obj1 = objects[0] as IdentityChildTestObject; Assert.AreEqual(1, obj1.Id); Assert.AreEqual("A", obj1.ObjData); Assert.AreEqual(3, obj1.Parent.Id); Assert.AreEqual("A", obj1.Parent.ObjData); Assert.AreEqual(2, obj1.Parent.ChildObjects.Count); IdentityChildTestObject obj2 = objects[1] as IdentityChildTestObject; Assert.AreEqual(2, obj2.Id); Assert.AreEqual("B", obj2.ObjData); Assert.AreEqual(3, obj2.Parent.Id); Assert.AreEqual("A", obj2.Parent.ObjData); Assert.AreEqual(2, obj2.Parent.ChildObjects.Count); }
public void SingleNotEqualsCondition() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new Condition("Boolean", Expression.NotEqual, false)); ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query); Assert.AreEqual(2, objects.Count); SimpleConstraintTestObject object1 = objects[0] as SimpleConstraintTestObject; Assert.AreEqual(2, object1.Id); Assert.AreEqual("GHT", object1.Varchar); Assert.AreEqual(5, object1.Integer); Assert.AreEqual(true, object1.Boolean); Assert.AreEqual(new DateTime(1945, 8, 1), object1.Date); Assert.AreEqual(2, object1.NullableInteger); SimpleConstraintTestObject object2 = objects[1] as SimpleConstraintTestObject; Assert.AreEqual(4, object2.Id); Assert.AreEqual("kp", object2.Varchar); Assert.AreEqual(100, object2.Integer); Assert.AreEqual(true, object2.Boolean); Assert.AreEqual(new DateTime(2004, 10, 1), object2.Date); Assert.AreEqual(-1, object2.NullableInteger); }
public void QueryUsedTwice() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new LiteralCondition("Parent.ObjData", " + 'X' = 'AX'")); query.Order = "Parent.ObjData"; ServerObjectCollection objects1 = transaction.Select(typeof(IdentityChildTestObject), query); ServerObjectCollection objects2 = transaction.Select(typeof(IdentityChildTestObject), query); Assert.AreEqual(2, objects1.Count); Assert.AreEqual(2, objects2.Count); IdentityChildTestObject obj1 = objects1[0] as IdentityChildTestObject; Assert.AreEqual(1, obj1.Id); Assert.AreEqual("A", obj1.ObjData); Assert.AreEqual(3, obj1.Parent.Id); Assert.AreEqual("A", obj1.Parent.ObjData); Assert.AreEqual(2, obj1.Parent.ChildObjects.Count); IdentityChildTestObject obj2 = objects2[0] as IdentityChildTestObject; Assert.AreEqual(1, obj2.Id); Assert.AreEqual("A", obj2.ObjData); Assert.AreEqual(3, obj2.Parent.Id); Assert.AreEqual("A", obj2.Parent.ObjData); Assert.AreEqual(2, obj2.Parent.ChildObjects.Count); }
public void SelectRecipesWithNoOccasions() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new NotCondition(new SetCondition("OccasionMaps"))); ServerObjectCollection recipes = transaction.Select(typeof(Recipe), query); Assert.AreEqual(49, recipes.Count); }
public void MultipleSetConditions() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new SetCondition("ChildObjects", new Condition("ObjData", Expression.Equal, "A"), new Condition("ObjData", Expression.Equal, "X"))); ServerObjectCollection objects = transaction.Select(typeof(IdentityParentTestObject), query); Assert.AreEqual(0, objects.Count); }
public void EmptyConditions() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new SetCondition("ChildObjects")); ServerObjectCollection objects = transaction.Select(typeof(IdentityParentTestObject), query); Assert.AreEqual(1, objects.Count); }
public void AndParents() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new ConditionGroup(ConditionGroupType.And, new Condition("Parent.Id", Expression.Equal, 3), new Condition("ObjData", Expression.NotEqual, "A"))); ServerObjectCollection objects = transaction.Select(typeof(IdentityChildTestObject), query); Assert.AreEqual(1, objects.Count); }
public void ParentOrder() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(); query.Order = "Author.firstname"; ServerObjectCollection recipes = transaction.Select(typeof(Recipe), query); }
public void SelectAll() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(); ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query); Assert.AreEqual(4, objects.Count); }
public void Literal() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new LiteralCondition("Integer", " + 1 = 7")); ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query); Assert.AreEqual(1, objects.Count); }
public void In() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new Condition("Integer", Expression.In, 5, 100)); ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query); Assert.AreEqual(2, objects.Count); }
public void And() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new ConditionGroup(ConditionGroupType.And, new Condition("Boolean", Expression.Equal, true), new Condition("Boolean", Expression.Equal, false))); ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query); Assert.AreEqual(0, objects.Count); }
public void SelectChelseaRecipes() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new Condition("Author", Expression.IsNull)); ServerObjectCollection recipes = transaction.Select(typeof(Recipe), query); Assert.AreEqual(218, recipes.Count); }
public void SelectValentines() { ObjectTransaction transaction = manager.BeginTransaction(); Occasion valentines = transaction.Select(typeof(Occasion), 11) as Occasion; Query query = new Query(new SetCondition("OccasionMaps", new Condition("Occasion", Expression.Equal, valentines.Id))); ServerObjectCollection recipes = transaction.Select(typeof(Recipe), query); Assert.AreEqual(23, recipes.Count); }
public void SelectCakes() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new Condition("Category", Expression.Equal, 1)); ServerObjectCollection recipes = transaction.Select(typeof(Recipe), query); Recipe recipe = recipes[0] as Recipe; Assert.AreEqual(454, recipe.Id); Assert.AreEqual(84, recipes.Count); }
public void DoubleEqualsCondition() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new Condition("Boolean", Expression.Equal, true), new Condition("Id", Expression.Equal, 4)); ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query); Assert.AreEqual(1, objects.Count); SimpleConstraintTestObject object1 = objects[0] as SimpleConstraintTestObject; Assert.AreEqual(4, object1.Id); Assert.AreEqual("kp", object1.Varchar); Assert.AreEqual(100, object1.Integer); Assert.AreEqual(true, object1.Boolean); Assert.AreEqual(new DateTime(2004, 10, 1), object1.Date); Assert.AreEqual(-1, object1.NullableInteger); }
static void Main(string[] args) { ObjectManager sql = new ObjectManager(ServerType.SqlServer, @"Integrated Security=SSPI; Persist Security Info=False; Initial Catalog=Chelsea; Data Source=Azrael;"); ObjectTransaction transaction = sql.BeginTransaction(); Query query = new Query( new Condition("Author.Id", Expression.IsNotNull) ); query.Order = "Author.firstname"; ServerObjectCollection recipes = transaction.Select(typeof(Recipe), query); foreach (Recipe recipe in recipes) { Console.WriteLine("{0} - {1}", recipe.Author.Firstname, recipe.Name); } }
public void SingleNotLikeAndGreaterThanCondition() { ObjectTransaction transaction = manager.BeginTransaction(); Query query = new Query(new Condition("Varchar", Expression.NotLike, "k%"), new Condition("Integer", Expression.GreaterThan, 5)); ServerObjectCollection objects = transaction.Select(typeof(SimpleConstraintTestObject), query); Assert.AreEqual(1, objects.Count); SimpleConstraintTestObject object1 = objects[0] as SimpleConstraintTestObject; Assert.AreEqual(1, object1.Id); Assert.AreEqual("AX", object1.Varchar); Assert.AreEqual(6, object1.Integer); Assert.AreEqual(false, object1.Boolean); Assert.AreEqual(new DateTime(1981, 7, 11), object1.Date); Assert.AreEqual(1, object1.NullableInteger); }
public static ServerObjectCollection ToCollection(Type type, IDataReader reader) { Trace.WriteLineIf(DebugOutput.Enabled, "Creating Collection"); ServerObjectCollection collection = new ServerObjectCollection(); TypeSchema schema = SchemaCache.Current.GetSchema(type); while (reader.Read()) { Trace.WriteLineIf(DebugOutput.Enabled, "Creating object of type " + type.FullName); ServerObject obj = Activator.CreateInstance(schema.Proxy) as ServerObject; foreach (PropertySchema propertySchema in schema.PropertySchemas) { if (Convert.IsDBNull(reader[propertySchema.ColumnName])) { if (propertySchema.CanBeNull) { Trace.WriteLineIf(DebugOutput.Enabled, String.Format(CultureInfo.CurrentCulture, "Setting {0} to NullValue", propertySchema.Property.Name)); obj.Data.SetValue(propertySchema.Property.Name, propertySchema.NullValue); } else { throw new ObjectServerException(String.Format(CultureInfo.CurrentCulture, "{0}.{1} has a null value from the database and CanBeNull is false", obj.ServerObjectType.FullName, propertySchema.Property.Name)); } } else { Trace.WriteLineIf(DebugOutput.Enabled, String.Format(CultureInfo.CurrentCulture, "Setting {0} to {1}", propertySchema.Property.Name, reader[propertySchema.ColumnName])); obj.Data.SetValue(propertySchema.Property.Name, reader[propertySchema.ColumnName]); } } foreach (ParentSchema parentSchema in schema.ParentSchemas) { if (Convert.IsDBNull(reader[parentSchema.ColumnName])) { if (parentSchema.CanBeNull) { Trace.WriteLineIf(DebugOutput.Enabled, String.Format(CultureInfo.CurrentCulture, "Setting {0} to DBNull.Value", parentSchema.Property.Name)); obj.Data.SetValue(parentSchema.Property.Name, DBNull.Value); } else { throw new ObjectServerException(String.Format(CultureInfo.CurrentCulture, "{0}.{1} has a null value from the database and CanBeNull is false", obj.ServerObjectType.FullName, parentSchema.Property.Name)); } } else { Trace.WriteLineIf(DebugOutput.Enabled, String.Format(CultureInfo.CurrentCulture, "Setting {0} to {1}", parentSchema.Property.Name, reader[parentSchema.ColumnName])); obj.Data.SetValue(parentSchema.Property.Name, reader[parentSchema.ColumnName]); } } collection.Add(obj); } reader.Close(); return(collection); }