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

          軟件下載吧

          當(dāng)前位置:軟件下載吧 > 數(shù)據(jù)庫(kù) > DB2 > SqlServer與MongoDB結(jié)合使用NHibernate

          SqlServer與MongoDB結(jié)合使用NHibernate

          時(shí)間:2024-03-04 00:33作者:下載吧人氣:21

          本文實(shí)例為大家分享了SqlServer與MongoDB結(jié)合使用NHibernate的代碼,供大家參考,具體內(nèi)容如下

          Program.cs代碼內(nèi)容:

          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..."); 
               //創(chuàng)建sqlserver的Node節(jié)點(diǎn) 
               CreateNodes(); 
               Console.WriteLine("Completed"); 
           
               Console.WriteLine("Linking nodes..."); 
               long milliseconds1 = LinkSqlNodes(); //創(chuàng)建sqlserver的LinkNode節(jié)點(diǎn) 
               Console.WriteLine("SQL : " + milliseconds1); 
               long milliseconds2 = LinkMongoNodes(); //同時(shí)創(chuàng)建Node,LinkNode節(jié)點(diǎn) 
               Console.WriteLine("Mongo : " + milliseconds2); 
               Console.WriteLine("Completed"); 
           
               Console.WriteLine("Fetching nodes..."); 
               long milliseconds3 = FetchSqlNodes(); //取出sqlserver節(jié)點(diǎn)數(shù)據(jù) 
               Console.WriteLine("SQL : " + milliseconds3); 
               long milliseconds4 = FetchMongoNodes(); //取出Mongodb節(jié)點(diǎn)數(shù)據(jù) 
               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)); //實(shí)例化 構(gòu)造函數(shù)初始化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(); 
               } 
             } 
           
             //清空數(shù)據(jù) 
             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(); 
               } 
             } 
           } 
          
          標(biāo)簽SqlServer,MongoDB,結(jié)合,使用,NHibernate

          相關(guān)下載

          查看所有評(píng)論+

          網(wǎng)友評(píng)論

          網(wǎng)友
          您的評(píng)論需要經(jīng)過(guò)審核才能顯示

          熱門(mén)閱覽

          最新排行

          公眾號(hào)

          主站蜘蛛池模板: 国精产品一区一区三区MBA下载 | 秋霞鲁丝片一区二区三区| 亚洲熟妇av一区二区三区下载| 福利一区在线视频| 中文字幕aⅴ人妻一区二区| 国产视频一区二区| 中文激情在线一区二区| 午夜天堂一区人妻| 国产激情一区二区三区成人91| 日韩精品一区二区三区老鸦窝| 亚洲av无码片区一区二区三区| 在线精品亚洲一区二区三区| 无码中文字幕一区二区三区| 成人精品一区二区三区电影| 亚洲日韩精品无码一区二区三区| 插我一区二区在线观看| 日韩精品午夜视频一区二区三区| 精品人妻少妇一区二区三区在线| 深夜福利一区二区| 无码人妻精一区二区三区| 日韩久久精品一区二区三区| 麻豆文化传媒精品一区二区| 亚洲国产精品一区第二页| 无码人妻一区二区三区免费手机| 日本一区二区三区免费高清 | 波多野结衣AV无码久久一区| 精品一区二区三区无码免费直播| 精品一区二区三区视频| 久久精品国内一区二区三区| 久久国产精品无码一区二区三区| 一区二区三区四区视频在线| 精彩视频一区二区三区| 国产一区二区三区亚洲综合| 国产在线观看一区二区三区| 一区二区三区人妻无码 | 91午夜精品亚洲一区二区三区| 亚洲一区视频在线播放| 无码日韩精品一区二区免费暖暖| 亚洲视频一区二区三区四区| 好吊视频一区二区三区| 久久久老熟女一区二区三区|