public static void run() { GraphViewConnection con = new GraphViewConnection(TutorialConfiguration.getConnectionString()); con.Open(); con.ClearData(); try { generateFiles(); Console.WriteLine("Creating tables..."); #region Create a schema for reader and book con.CreateNodeTable(@"CREATE TABLE [Book] ( [ColumnRole:""NodeId""] name VARCHAR(40) )"); con.CreateNodeTable(@"CREATE TABLE [Reader] ( [ColumnRole:""NodeId""] name VARCHAR(30), [ColumnRole:""Property""] gender VARCHAR(10), [ColumnRole:""Edge"",Reference:""Book""] Reads VARBINARY(max) )"); #endregion Console.WriteLine("BulkLoading..."); #region Bulk Load Nodes con.BulkInsertNode(ReaderFileName, "Reader", "dbo", null, ",", "\n"); con.BulkInsertNode(BookFileName, "Book", "dbo", null, ",", "\n"); con.BulkInsertEdge(readRelationFileName, "dbo", "Reader", "name", "Book", "name", "Reads", null, ",", "\n"); #endregion Console.WriteLine("Querying..."); #region Query var res = con.ExecuteReader(@"SELECT x.name as name1, y.name as name2 FROM Reader x, Book y MATCH x-[Reads]->y "); try { while (res.Read()) { System.Console.WriteLine(res["name1"].ToString() + " Reads " + res["name2"].ToString()); } } finally { if (res != null) { res.Close(); } } #endregion } catch (System.Exception ex) { System.Console.WriteLine(ex.Message); } finally // close the connection and drop table { con.ClearGraphDatabase(); con.Close(); deleteFiles(); } }
static void Main(string[] args) { // You should modify your database information in TestConfiguration TestConfiguration.localTest = true; var connection = new GraphViewConnection(TestConfiguration.getConnectionString()); try { Console.WriteLine("Opening the DB..."); connection.Open(); connection.ClearData(); Console.WriteLine("Creating table..."); connection.CreateNodeTable(TestConfiguration.getCreateTableString()); string Table = TestConfiguration.TestCaseNodeTableName; string NodeId = TestConfiguration.TestCaseNodeIdName; string EdgeName = TestConfiguration.TestCaseEdgeName; string NodeDataFile = TestConfiguration.NodeDataFileLocation; string EdgeDataFile = TestConfiguration.EdgeDataFileLocation; Console.WriteLine("BulkLoading Nodes..."); connection.BulkInsertNode(NodeDataFile, Table, "dbo", null, ",", "\n"); Console.WriteLine("BulkLoading Edges..."); connection.BulkInsertEdge(EdgeDataFile, "dbo", Table, NodeId, Table, NodeId, EdgeName, null, ",", "\n"); Console.WriteLine("Updating Statistics..."); connection.UpdateTableStatistics("dbo", Table); // updating staticestics allows GraphView do optimization on query precisely Console.WriteLine("Tests begin!"); (new RectangleMatchTest()).run(connection); (new DoubleDiamondMatchTest()).run(connection); (new InfluxMatchTest()).run(connection); (new TripleTriangleMatchTest()).run(connection); (new PentagonMatchTest()).run(connection); (new TriangleMatchTest()).run(connection); (new LongChainsMatchTest()).run(connection); } finally { connection.ClearGraphDatabase(); connection.Close(); } }