static void DoTestConcurrency() { using (TestEntities context = new TestEntities()) { Console.WriteLine("Start!"); // 取得 数据库的序列号数据. TEST_SEQUENCE sequence = context.TEST_SEQUENCE.FirstOrDefault(p => p.TABLE_NAME == "test_main"); // 获取序列号. decimal newSeq = sequence.SEQUENCE_NUMBER; // 更新序列号表. sequence.SEQUENCE_NUMBER++; Console.WriteLine("sequence = " + newSeq); // 模拟一个长时间操作. Thread.Sleep(1000); // 插入数据. TEST_MAIN testData = new TEST_MAIN() { ID = newSeq, VALUE = "Main" + newSeq }; context.TEST_MAIN.AddObject(testData); // 提交保存. context.SaveChanges(); Console.WriteLine("Finish!"); } }
/// <summary> /// 测试多次重复查询. /// </summary> public static void DoTest() { using (TestEntities context = new TestEntities()) { Console.WriteLine("测试多次重复更改/查询 Start!"); for (int i = 0; i < 10; i++) { // 取得 数据库的序列号数据. TEST_SEQUENCE sequence = context.TEST_SEQUENCE.FirstOrDefault(p => p.TABLE_NAME == "test_main"); // 获取序列号. decimal newSeq = sequence.SEQUENCE_NUMBER; // 更新序列号表. sequence.SEQUENCE_NUMBER++; Console.WriteLine("sequence = " + newSeq); // 注意: 这里修改了数据以后, 并没有 context.SaveChanges(); 提交保存. // 将循环回去, 再做 FirstOrDefault 查询. } Console.WriteLine("测试多次重复更改/查询 Finish! (本方法未执行 context.SaveChanges() )"); } }
/// <summary> /// 创建新的 TEST_SEQUENCE 对象。 /// </summary> /// <param name="tABLE_NAME">TABLE_NAME 属性的初始值。</param> /// <param name="sEQUENCE_NUMBER">SEQUENCE_NUMBER 属性的初始值。</param> public static TEST_SEQUENCE CreateTEST_SEQUENCE(global::System.String tABLE_NAME, global::System.Decimal sEQUENCE_NUMBER) { TEST_SEQUENCE tEST_SEQUENCE = new TEST_SEQUENCE(); tEST_SEQUENCE.TABLE_NAME = tABLE_NAME; tEST_SEQUENCE.SEQUENCE_NUMBER = sEQUENCE_NUMBER; return(tEST_SEQUENCE); }
/// <summary> /// 用于向 TEST_SEQUENCE EntitySet 添加新对象的方法,已弃用。请考虑改用关联的 ObjectSet<T> 属性的 .Add 方法。 /// </summary> public void AddToTEST_SEQUENCE(TEST_SEQUENCE tEST_SEQUENCE) { base.AddObject("TEST_SEQUENCE", tEST_SEQUENCE); }
/// <summary> /// 创建新的 TEST_SEQUENCE 对象。 /// </summary> /// <param name="tABLE_NAME">TABLE_NAME 属性的初始值。</param> /// <param name="sEQUENCE_NUMBER">SEQUENCE_NUMBER 属性的初始值。</param> public static TEST_SEQUENCE CreateTEST_SEQUENCE(global::System.String tABLE_NAME, global::System.Decimal sEQUENCE_NUMBER) { TEST_SEQUENCE tEST_SEQUENCE = new TEST_SEQUENCE(); tEST_SEQUENCE.TABLE_NAME = tABLE_NAME; tEST_SEQUENCE.SEQUENCE_NUMBER = sEQUENCE_NUMBER; return tEST_SEQUENCE; }
/// <summary> /// 用于向 TEST_SEQUENCE EntitySet 添加新对象的方法,已弃用。请考虑改用关联的 ObjectSet<T> 属性的 .Add 方法。 /// </summary> public void AddToTEST_SEQUENCE(TEST_SEQUENCE tEST_SEQUENCE) { base.AddObject("TEST_SEQUENCE", tEST_SEQUENCE); }