public void Update() { var person = EntityProxyGenerator.CreateProxy <Person>(); person.Name = "test"; person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = true; using (ISession session = SessionFactory.CreateDefaultSession()) { int i = session.Insert(person); int id = session.GetIndentifer <int>(); // Find 方法返回的对象都是原始对象而非代理对象 person = session.Find <Person>().Where(s => s.Id == id).Single(); Console.WriteLine(SqlCmd.Current.Sql); // 根据原始对象创建代理对象 person = person.ToEntityProxy <Person>(); person.Name = "test01"; person.Age = 31; person.Money = 200; i = session.Update(person); Console.WriteLine(SqlCmd.Current.Sql); person = session.Find <Person>().Where(s => s.Id == id).Single(); Console.WriteLine(SqlCmd.Current.Sql); Assert.AreEqual(1, i); Assert.AreEqual("test01", person.Name); Assert.AreEqual(31, person.Age.Value); Assert.AreEqual(200, person.Money.Value); person = EntityProxyGenerator.CreateProxy <Person>(); person.Name = "test"; person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = true; i = session.Update <Person>().Set(person).Where(s => s.Id == id).Execute(); Console.WriteLine(SqlCmd.Current.Sql); Assert.AreEqual(1, i); Assert.AreEqual("test", person.Name); Assert.AreEqual(20, person.Age.Value); Assert.AreEqual(100, person.Money.Value); Assert.AreEqual(true, person.IsActive); } }
public void ExecuteDataPage() { using (ISession session = SessionFactory.CreateDefaultSession()) { int id = 0; for (int i = 0; i < 20; i++) { // 新增时,对象务必使用 EntityProxyGenerator 创建实体代理,否则无法跟踪属性变化 var person = EntityHelper.CreateProxy <Person>(); person.Name = "test"; //person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = false; session.Insert(person); id = session.GetIndentifer <int>(); } string sql = "select * from Person where Id <= ? and CreateTime < ?"; var dataPage = session.ExecuteDataPage(sql, 1, 20, "CreateTime desc", id, DateTime.Now); Assert.AreEqual(20, dataPage.Data.Rows.Count); } }
public void Insert100KRecords() { using (ISession session = SessionFactory.CreateDefaultSession()) { Stopwatch watch = new Stopwatch(); watch.Start(); for (int i = 0; i < 10000; i++) { var person = EntityHelper.CreateProxy <Person>(); person.Name = "test"; person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = false; session.Insert(person); } watch.Stop(); Console.WriteLine(watch.Elapsed); int count = session.Find <Person>().Count(); Assert.AreEqual(10000, count); } }
public void Clear() { using (ISession session = SessionFactory.CreateDefaultSession()) { session.Delete <Person>().Execute(); var queryable = session.Find <Person>().Count(); Assert.AreEqual(0, queryable); } }
public void ExecuteScalar() { using (ISession session = SessionFactory.CreateDefaultSession()) { string sql = "select count(*) from Person where Id = ? and CreateTime < ?"; int count = session.ExecuteScalar <int>(sql, 500, DateTime.Now); Assert.AreEqual(1, count); } }
public void Test() { using (ISession session = SessionFactory.CreateDefaultSession()) { var persons = from s in session.Find <Person>() select new Person() { Id = s.Id, Name = s.Name, Age = s.Age }; persons.ToList(); } }
public void Delete() { var person = EntityHelper.CreateProxy <Person>(); string id = Guid.NewGuid().ToString(); person.Id = id; person.Name = "test"; person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = 0; using (ISession session = SessionFactory.CreateDefaultSession()) { int i = session.Insert(person); person = session.Find <Person>().Where(s => s.Id == id).Single(); i = session.Delete(person); Console.WriteLine(session.Provider.ExecutedCommandBuilder); var queryable = session.Find <Person>().Where(s => s.Id == id); Assert.AreEqual(1, i); Assert.AreEqual(0, queryable.Count()); person = EntityHelper.CreateProxy <Person>(); id = Guid.NewGuid().ToString(); person.Id = id; person.Name = "test"; person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = 1; i = session.Insert(person); person = session.Find <Person>().Where(s => s.Id == id).Single(); i = session.Delete <Person>().Where(s => s.Id == id).Execute(); Console.WriteLine(session.Provider.ExecutedCommandBuilder); Assert.AreEqual(1, i); Assert.AreEqual(0, queryable.Count()); } }
public void Delete() { var person = EntityProxyGenerator.CreateProxy <Person>(); person.Name = "test"; person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = true; using (ISession session = SessionFactory.CreateDefaultSession()) { int i = session.Insert(person); int id = session.GetIndentifer <int>(); person = session.Find <Person>().Where(s => s.Id == id).Single(); i = session.Delete(person); Console.WriteLine(SqlCmd.Current.Sql); var queryable = session.Find <Person>().Where(s => s.Id == id); Assert.AreEqual(1, i); Assert.AreEqual(0, queryable.Count()); person = EntityProxyGenerator.CreateProxy <Person>(); person.Name = "test"; person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = true; i = session.Insert(person); id = session.GetIndentifer <int>(); person = session.Find <Person>().Where(s => s.Id == id).Single(); i = session.Delete <Person>().Where(s => s.Id == id).Execute(); Console.WriteLine(SqlCmd.Current.Sql); Assert.AreEqual(1, i); Assert.AreEqual(0, queryable.Count()); } }
public void Insert() { // 新增时,对象务必使用 EntityHelper 创建实体代理,否则无法跟踪属性变化 var person = EntityHelper.CreateProxy <Person>(); person.Name = "test"; //person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = false; using (ISession session = SessionFactory.CreateDefaultSession()) { // 直接插入实体 int i = session.Insert(person); // 输出生成的SQL语句 Console.WriteLine(session.Provider.ExecutedCommandBuilder); int id = session.GetIndentifer <int>(); Assert.AreEqual(1, i); Assert.Greater(id, 0); // Lambda 表达式插入 i = session.Insert <Person>() .Set(s => s.Name, "test") .Set(s => s.Age, 20) .Set(s => s.Money, 200) .Set(s => s.CreateTime, DateTime.Now) .Set(s => s.IsActive, true) .Execute(); // 输出生成的SQL语句 Console.WriteLine(session.Provider.ExecutedCommandBuilder); id = session.GetIndentifer <int>(); Assert.AreEqual(1, i); Assert.Greater(id, 0); } }
public void Insert() { // 新增时,对象务必使用 EntityProxyGenerator 创建实体代理,否则无法跟踪属性变化 var person = EntityHelper.CreateProxy <Person>(); string id = Guid.NewGuid().ToString(); person.Id = id; person.Name = "test"; //person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = 0; using (ISession session = SessionFactory.CreateDefaultSession()) { int i = session.Insert(person); // 输出生成的SQL语句 Console.WriteLine(session.Provider.ExecutedCommandBuilder); Assert.AreEqual(1, i); i = session.Insert <Person>() .Set(s => s.Id, Guid.NewGuid().ToString()) .Set(s => s.Name, "test") .Set(s => s.Age, 20) .Set(s => s.Money, 200) .Set(s => s.CreateTime, DateTime.Now) .Set(s => s.IsActive, 1) .Execute(); // 输出生成的SQL语句 Console.WriteLine(session.Provider.ExecutedCommandBuilder); Assert.AreEqual(1, i); } }
public void Update100KRecords() { using (ISession session = SessionFactory.CreateDefaultSession()) { Stopwatch watch = new Stopwatch(); watch.Start(); for (int i = 0; i < 100000; i++) { var person = EntityHelper.CreateProxy <Person>(); person.Name = "test"; person.CreateTime = DateTime.Now; person.IsActive = false; session.Update(person); } watch.Stop(); Console.WriteLine(watch.Elapsed); } }
public void Insert() { // 新增时,对象务必使用 EntityProxyGenerator 创建实体代理,否则无法跟踪属性变化 var person = EntityProxyGenerator.CreateProxy <Person>(); person.Name = "test"; //person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = false; using (ISession session = SessionFactory.CreateDefaultSession()) { int i = session.Insert(person); // 输出生成的SQL语句 Console.WriteLine(SqlCmd.Current.Sql); int id = session.GetIndentifer <int>(); Assert.AreEqual(1, i); Assert.Greater(id, 0); } }
public void Find100KRecords() { using (ISession session = SessionFactory.CreateDefaultSession()) { Stopwatch watch = new Stopwatch(); for (int i = 0; i < 10; i++) { watch.Start(); var queryable = session.Find <Person>(); var list = queryable.ToList(); watch.Stop(); Console.WriteLine(watch.Elapsed); watch.Reset(); Assert.LessOrEqual(10000, list.Count); } } }
public void ExecuteScalar() { // 新增时,对象务必使用 EntityProxyGenerator 创建实体代理,否则无法跟踪属性变化 var person = EntityHelper.CreateProxy <Person>(); person.Name = "test"; //person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = false; using (ISession session = SessionFactory.CreateDefaultSession()) { session.Insert(person); int id = session.GetIndentifer <int>(); string sql = "select count(*) from Person where Id = ? and CreateTime <= ?"; int count = session.ExecuteScalar <int>(sql, id, DateTime.Now.AddSeconds(1)); Assert.AreEqual(1, count); } }
public void Find() { using (ISession session = SessionFactory.CreateDefaultSession()) { var person = new Person() { Name = "test", Age = 20, Money = 100, CreateTime = DateTime.Now, IsActive = true }; session.Insert(person); int id = session.GetIndentifer <int>(); var queryable = session.Find <Person>().Where(s => s.Id == id); // 测试 Single 函数 person = queryable.Single(); Assert.AreEqual("test", person.Name); Assert.AreEqual(20, person.Age.Value); Assert.AreEqual(100, person.Money.Value); Assert.AreEqual(true, person.IsActive); // 测试 SingleOrDefault 函数 person = queryable.SingleOrDefault(); Assert.AreEqual("test", person.Name); Assert.AreEqual(20, person.Age.Value); Assert.AreEqual(100, person.Money.Value); Assert.AreEqual(true, person.IsActive); // 测试 First 函数 person = queryable.First(); Assert.AreEqual("test", person.Name); Assert.AreEqual(20, person.Age.Value); Assert.AreEqual(100, person.Money.Value); Assert.AreEqual(true, person.IsActive); // 测试 FirstOrDefault 函数 person = queryable.FirstOrDefault(); Assert.AreEqual("test", person.Name); Assert.AreEqual(20, person.Age.Value); Assert.AreEqual(100, person.Money.Value); Assert.AreEqual(true, person.IsActive); // 测试 Count 函数 Assert.AreEqual(1, queryable.Count()); // 测试 ToList 函数 var list = queryable.ToList(); Assert.AreEqual(1, list.Count()); // 测试包含多个 Where 条件 queryable = session.Find <Person>() .Where(s => s.Id == id) .Where(s => s.Name == "test") .Where(s => s.Age == 20 && s.IsActive == true); Assert.AreEqual(1, queryable.Count()); Console.WriteLine(SqlCmd.Current.Sql); } }
public void Find() { var person = EntityHelper.CreateProxy <Person>(); person.Name = "test"; person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = true; using (ISession session = SessionFactory.CreateDefaultSession()) { session.Insert(person); int id = session.GetIndentifer <int>(); var queryable = session.Find <Person>().Where(s => s.Id == id); // 测试 Single 函数 person = queryable.Single(); Console.WriteLine(session.Provider.ExecutedCommandBuilder); Assert.AreEqual("test", person.Name); Assert.AreEqual(20, person.Age.Value); Assert.AreEqual(100, person.Money.Value); Assert.AreEqual(true, person.IsActive); // 测试 SingleOrDefault 函数 person = queryable.SingleOrDefault(); Console.WriteLine(session.Provider.ExecutedCommandBuilder); Assert.AreEqual("test", person.Name); Assert.AreEqual(20, person.Age.Value); Assert.AreEqual(100, person.Money.Value); Assert.AreEqual(true, person.IsActive); // 测试 First 函数 person = queryable.First(); Console.WriteLine(session.Provider.ExecutedCommandBuilder); Assert.AreEqual("test", person.Name); Assert.AreEqual(20, person.Age.Value); Assert.AreEqual(100, person.Money.Value); Assert.AreEqual(true, person.IsActive); // 测试 FirstOrDefault 函数 person = queryable.FirstOrDefault(); Console.WriteLine(session.Provider.ExecutedCommandBuilder); Assert.AreEqual("test", person.Name); Assert.AreEqual(20, person.Age.Value); Assert.AreEqual(100, person.Money.Value); Assert.AreEqual(true, person.IsActive); // 测试 Count 函数 Assert.AreEqual(1, queryable.Count()); Console.WriteLine(session.Provider.ExecutedCommandBuilder); // 测试 ToList 函数 var list = queryable.ToList(); Console.WriteLine(session.Provider.ExecutedCommandBuilder); Assert.AreEqual(1, list.Count()); // 测试包含多个 Where 条件 queryable = session.Find <Person>() .Where(s => s.Id == id) .Where(s => s.Name.Contains("test")) .OrderBy(s => s.CreateTime) .OrderBy(s => s.Name) .Skip(0).Take(1); Assert.AreEqual(1, queryable.Count()); Console.WriteLine(session.Provider.ExecutedCommandBuilder); } }
public void Update() { var person = EntityHelper.CreateProxy <Person>(); person.Name = "test"; person.Age = 20; person.Money = 100; person.CreateTime = DateTime.Now; person.IsActive = true; using (ISession session = SessionFactory.CreateDefaultSession()) { int i = session.Insert(person); int id = session.GetIndentifer <int>(); // Find 方法返回的对象都是原始对象而非代理对象 person = session.Find <Person>().Where(s => s.Id == id).Single(); Console.WriteLine(session.Provider.ExecutedCommandBuilder); // 根据原始对象创建代理对象 person = person.ToEntityProxy(); person.Name = "test01"; person.Age = 31; person.Money = 200; i = session.Update(person); Console.WriteLine(session.Provider.ExecutedCommandBuilder); person = session.Find <Person>().Where(s => s.Id == id).Single(); Console.WriteLine(session.Provider.ExecutedCommandBuilder); Assert.AreEqual(1, i); Assert.AreEqual("test01", person.Name); Assert.AreEqual(31, person.Age.Value); Assert.AreEqual(200, person.Money.Value); person = EntityHelper.CreateProxy <Person>(); person.Name = "test02"; person.Age = 22; person.Money = 101; person.CreateTime = DateTime.Now; person.IsActive = false; i = session.Update <Person>() .Set(person) .Where(s => s.Id == id) .Execute(); Console.WriteLine(session.Provider.ExecutedCommandBuilder); person = session.Find <Person>().Where(s => s.Id == id).Single(); Assert.AreEqual(1, i); Assert.AreEqual("test02", person.Name); Assert.AreEqual(22, person.Age.Value); Assert.AreEqual(101, person.Money.Value); Assert.AreEqual(false, person.IsActive); i = session.Update <Person>().Set(s => s.Name, "test03") .Set(s => s.Age, 23) .Set(s => s.Money, 102) .Set(s => s.CreateTime, DateTime.Now) .Set(s => s.IsActive, true) .Where(s => s.Id == id) .Execute(); Console.WriteLine(session.Provider.ExecutedCommandBuilder); person = session.Find <Person>().Where(s => s.Id == id).Single(); Assert.AreEqual(1, i); Assert.AreEqual("test03", person.Name); Assert.AreEqual(23, person.Age.Value); Assert.AreEqual(102, person.Money.Value); Assert.AreEqual(true, person.IsActive); } }