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

          軟件下載吧

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

          SqlServer與MongoDB結合使用NHibernate

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

          本文實例為大家分享了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一区二区三区| 尤物精品视频一区二区三区 | 国产综合精品一区二区| 无码8090精品久久一区| 日本片免费观看一区二区| 精品久久一区二区三区| 国产人妖视频一区二区破除| 国产午夜精品一区二区三区漫画| 亚洲一区免费在线观看| 日本道免费精品一区二区| 精品在线一区二区| 制服美女视频一区| 精品免费国产一区二区| 亚洲国产日韩一区高清在线| 午夜精品一区二区三区在线视| 亚洲综合激情五月色一区| 老熟妇仑乱一区二区视頻| 精品国产一区二区三区免费| 亚洲无线码一区二区三区| 国产成人精品一区在线| 国产天堂在线一区二区三区| 一区二区三区在线观看| 99久久无码一区人妻a黑| 无码精品人妻一区二区三区漫画 | 日韩精品成人一区二区三区| 亚洲A∨精品一区二区三区| 国产一区在线播放| 又紧又大又爽精品一区二区| 精品一区中文字幕| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 国产精品电影一区| 无码人妻精品一区二区三区99性 | 日韩一区二区在线观看视频| 日韩精品一区二区三区四区| 91一区二区三区| 久久国产精品视频一区| 久久精品亚洲一区二区三区浴池| 日本免费一区二区在线观看| 亚洲一区二区三区成人网站 | 性色av一区二区三区夜夜嗨 |