예제 #1
0
        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();
            }
        }
예제 #2
0
        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();
            }
        }