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

軟件下載吧

當(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)過審核才能顯示

熱門閱覽

最新排行

公眾號(hào)

主站蜘蛛池模板: 四虎1515hh永久久免费| 久草免费手机视频| 99热精品久久| 爱情岛永久免费| 大陆一级毛片免费视频观看| 免费无码国产V片在线观看| 三年片在线观看免费观看大全中国| 色吊丝最新在线播放网站| 日日摸日日碰夜夜爽亚洲| 国产AV天堂无码一区二区三区| 丰满岳乱妇在线观看视频国产| 自拍偷拍国语对白| 成人深夜福利视频| 别揉我的胸~啊~嗯~的视频| 一本大道香蕉最新在线视频 | 亚洲AV日韩精品久久久久久| 亚洲av日韩精品久久久久久久 | 日产乱码一卡二卡三免费| 国产一区二区欧美丝袜| 中文字幕一区二区在线播放| 精品在线视频一区| 日本高清xxxx| 国产伦一区二区三区免费| 中文字幕精品亚洲无线码二区| 老司机成人影院| 女人被狂c躁到高潮视频| 亚洲精彩视频在线观看| 一区在线免费观看| 爱情岛论坛免费观看大全在线| 国精品午夜福利视频不卡| 亚洲国产精品一区二区九九| 久草视频精品在线| 无码国产色欲XXXXX视频| 冠希实干阿娇13分钟视频在线看| hd日本扒衣党视频播放| 欧美日韩第一区| 国产成人精品视频一区二区不卡 | 67194国产精品免费观看| 果冻传媒91制片厂211| 国产乱人伦av在线a| 一区二区三区免费视频网站|