下載吧 - 綠色安全的游戲和軟件下載中心

          軟件下載吧

          當前位置:軟件下載吧 > 數據庫 > DB2 > SqlServer與MongoDB結合使用NHibernate

          SqlServer與MongoDB結合使用NHibernate

          時間:2024-03-04 00:33作者:下載吧人氣:30

          本文實例為大家分享了SqlServer與MongoDB結合使用NHibernate的代碼,供大家參考,具體內容如下

          Program.cs代碼內容:

          class Program 
           { 
             private const string SqlServerConnectionString = 
               @"Data Source=.;Initial Catalog=SqlWithMongo;Persist Security Info=True;User ID=sa;Password=123456"; 
           
             private const string MongoConnectionString = "mongodb://localhost:27017"; 
             private const int NumberOfNodes = 1000; 
           
             private static void Main(string[] args) 
             { 
               Console.WriteLine("Clearing database..."); 
               ClearDatabases(); 
               Initer.Init(SqlServerConnectionString, MongoConnectionString); 
               Console.WriteLine("Completed"); 
           
               Console.WriteLine("Creating nodes..."); 
               //創建sqlserver的Node節點 
               CreateNodes(); 
               Console.WriteLine("Completed"); 
           
               Console.WriteLine("Linking nodes..."); 
               long milliseconds1 = LinkSqlNodes(); //創建sqlserver的LinkNode節點 
               Console.WriteLine("SQL : " + milliseconds1); 
               long milliseconds2 = LinkMongoNodes(); //同時創建Node,LinkNode節點 
               Console.WriteLine("Mongo : " + milliseconds2); 
               Console.WriteLine("Completed"); 
           
               Console.WriteLine("Fetching nodes..."); 
               long milliseconds3 = FetchSqlNodes(); //取出sqlserver節點數據 
               Console.WriteLine("SQL : " + milliseconds3); 
               long milliseconds4 = FetchMongoNodes(); //取出Mongodb節點數據 
               Console.WriteLine("Mongo : " + milliseconds4); 
               Console.WriteLine("Completed"); 
           
               Console.ReadKey(); 
             } 
           
           
             private static long FetchMongoNodes() 
             { 
               var stopwatch = new Stopwatch(); 
               stopwatch.Start(); 
           
               for (int i = 0; i < NumberOfNodes; i++) 
               { 
                 using (var unitOfWork = new UnitOfWork()) 
                 { 
                   var repository = new MongoNodeRepository(unitOfWork); 
           
                   MongoNode node = repository.GetById(i + 1); 
                   IReadOnlyList<NodeLink> links = node.Links; 
                 } 
               } 
               stopwatch.Stop(); 
               return stopwatch.ElapsedMilliseconds; 
             } 
           
           
             private static long FetchSqlNodes() 
             { 
               var stopwatch = new Stopwatch(); 
               stopwatch.Start(); 
           
               for (int i = 0; i < NumberOfNodes; i++) 
               { 
                 using (var unitOfWork = new UnitOfWork()) 
                 { 
                   var repository = new NodeRepository(unitOfWork); 
           
                   Node node = repository.GetById(i + 1); 
                   IReadOnlyList<Node> links = node.Links; 
                 } 
               } 
           
               stopwatch.Stop(); 
               return stopwatch.ElapsedMilliseconds; 
             } 
           
           
             private static long LinkSqlNodes() 
             { 
               var stopwatch = new Stopwatch(); 
               stopwatch.Start(); 
           
               using (var unitOfWork = new UnitOfWork()) 
               { 
                 var repository = new NodeRepository(unitOfWork); 
           
                 IList<Node> nodes = repository.GetAll(); 
                 foreach (Node node1 in nodes) 
                 { 
                   foreach (Node node2 in nodes) 
                   { 
                     node1.AddLink(node2); 
                   } 
                 } 
                 unitOfWork.Commit(); 
               } 
           
               stopwatch.Stop(); 
               return stopwatch.ElapsedMilliseconds; 
             } 
           
           
             private static long LinkMongoNodes() 
             { 
               var stopwatch = new Stopwatch(); 
               stopwatch.Start(); 
           
               using (var unitOfWork = new UnitOfWork()) 
               { 
                 var repository = new MongoNodeRepository(unitOfWork); 
           
                 IList<MongoNode> nodes = repository.GetAll(); 
                 foreach (MongoNode node1 in nodes) 
                 { 
                   foreach (MongoNode node2 in nodes) 
                   { 
                     node1.AddLink(node2); 
                   } 
                 } 
                 unitOfWork.Commit(); 
               } 
           
               stopwatch.Stop(); 
               return stopwatch.ElapsedMilliseconds; 
             } 
           
           
             private static void CreateNodes() 
             { 
               using (var unitOfWork = new UnitOfWork()) 
               { 
                 var repository = new NodeRepository(unitOfWork); 
           
                 for (int i = 0; i < NumberOfNodes; i++) 
                 { 
                   var node = new Node("Node " + (i + 1)); //實例化 構造函數初始化name 
                   repository.Save(node); 
                 } 
           
                 unitOfWork.Commit(); 
               } 
           
               using (var unitOfWork = new UnitOfWork()) 
               { 
                 var repository = new MongoNodeRepository(unitOfWork); 
           
                 for (int i = 0; i < NumberOfNodes; i++) 
                 { 
                   var node = new MongoNode("Node " + (i + 1)); 
                   repository.Save(node); 
                 } 
           
                 unitOfWork.Commit(); 
               } 
             } 
           
             //清空數據 
             private static void ClearDatabases() 
             { 
               new MongoClient(MongoConnectionString) 
                 .GetDatabase("sqlWithMongo") 
                 .DropCollectionAsync("links") 
                 .Wait(); 
           
               string query = "DELETE FROM [dbo].[MongoNode];" + 
                       "DELETE FROM [dbo].[Node_Node];" + 
                       "DELETE FROM [dbo].[Node];" + 
                       "UPDATE [dbo].[Ids] SET [NextHigh] = 0"; 
           
               using (var connection = new SqlConnection(SqlServerConnectionString)) 
               { 
                 var command = new SqlCommand(query, connection) 
                 { 
                   CommandType = CommandType.Text 
                 }; 
           
                 connection.Open(); 
                 command.ExecuteNonQuery(); 
               } 
             } 
           } 
          
          標簽SqlServer,MongoDB,結合,使用,NHibernate

          相關下載

          查看所有評論+

          網友評論

          網友
          您的評論需要經過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 无码人妻精品一区二区三区在线| 蜜桃无码AV一区二区| 深夜福利一区二区| 国产一区二区三区影院| 无码国产精品一区二区免费式影视 | 在线观看午夜亚洲一区| 人妻少妇精品一区二区三区| 亚洲AV美女一区二区三区| 午夜性色一区二区三区免费不卡视频| 国产欧美一区二区精品仙草咪| 国产成人免费一区二区三区| 国产精品男男视频一区二区三区| 日本亚洲成高清一区二区三区| 一区二区三区在线免费看| 亚洲中文字幕久久久一区| 无码人妻精品一区二区蜜桃AV| 久久99精品免费一区二区| 少妇精品久久久一区二区三区| 精品无码国产一区二区三区麻豆| 国产高清在线精品一区小说| 无码国产伦一区二区三区视频| 韩国福利视频一区二区 | 亚洲国产精品无码久久一区二区| 国产精品久久一区二区三区| 精品亚洲av无码一区二区柚蜜| 久久免费视频一区| 伊人久久精品无码麻豆一区 | 中文字幕久久久久一区| 亚洲av成人一区二区三区| 内射一区二区精品视频在线观看| 亚洲国产老鸭窝一区二区三区| 国产在线一区二区三区在线| 性无码免费一区二区三区在线| 色噜噜一区二区三区| 亚洲一区二区三区亚瑟| 狠狠色婷婷久久一区二区| 暖暖免费高清日本一区二区三区| 亚洲日本一区二区三区| 国产福利电影一区二区三区久久老子无码午夜伦不 | 无码人妻一区二区三区一| 中文字幕一区二区三区视频在线 |