{"id":16029,"date":"2017-07-13T14:00:42","date_gmt":"2017-07-13T08:30:42","guid":{"rendered":"http:\/\/www.fusioncharts.com\/blog\/?p=16029"},"modified":"2026-01-20T14:36:47","modified_gmt":"2026-01-20T09:06:47","slug":"creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio","status":"publish","type":"post","link":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/","title":{"rendered":"FusionCharts Drill-Downs with EF &amp; LINQ in Visual Studio 2026"},"content":{"rendered":"All charts (except for the zoom-line chart) in FusionCharts Suite XT can be configured to be rendered as drill-down charts.\r\n\r\nDrill-down charts can be implemented using several features, for example, the data plots can be linked to other charts, to simple URLs that will be open in the same page or in a different page, or to JavaScript functions defined in the same page. Click <a href=\"https:\/\/www.fusioncharts.com\/dev\/chart-guide\/chart-configurations\/drill-down\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> to know more about the drill-down charts supported by FusionCharts.\r\n\r\nFusionCharts also lets you create charts by fetching data from the database.\r\n\r\nThis tutorial tells you about how you can create the FusionCharts drill-down charts by fetching data from a database using Entity Framework and LINQ in Visual Studio. For this tutorial, the drill-down charts will be implemented as <a href=\"https:\/\/www.fusioncharts.com\/features\/linkedcharts-for-drill-down\/\" target=\"_blank\" rel=\"noopener noreferrer\">linked charts<\/a>.\r\n\r\n<strong>Entity Framework(EF)<\/strong>, the open source Object Relational Mapping (ORM) for ADO.NET, virtually eliminates the necessity to write data access codes by including support for LINQ for issuing queries.\r\n\r\n<strong>LINQ (Language Integrated Query)<\/strong> offers native data querying capabilities in the .NET Framework based languages.\r\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_71 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#Requirements\" title=\"Requirements\">Requirements<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#Creating_the_FusionCharts_Drill-down_Charts_from_a_Database_Using_Entity_Framework_and_LINQ\" title=\"Creating the FusionCharts Drill-down Charts from a Database Using Entity Framework and LINQ\">Creating the FusionCharts Drill-down Charts from a Database Using Entity Framework and LINQ<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#Creating_a_New_Project\" title=\"Creating a New Project\">Creating a New Project<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#Creating_a_Database_and_Including_it_in_the_App_Data_ASPNET_Folder\" title=\"Creating a Database and Including it in the App_Data ASP.NET Folder\">Creating a Database and Including it in the App_Data ASP.NET Folder<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#Creating_the_edmx_File_Using_the_Entity_Data_Model\" title=\"Creating the .edmx File Using the Entity Data Model\">Creating the .edmx File Using the Entity Data Model<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#Was_There_a_Problem_Rendering_the_Chart\" title=\"Was There a Problem Rendering the Chart?\">Was There a Problem Rendering the Chart?<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Requirements\"><\/span>Requirements<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\nFor rendering charts in VB.NET, we need to make sure that we have the following components downloaded on our local machine:\r\n<ul>\r\n \t<li>Visual Studio IDE and .NET Framework [<a href=\"https:\/\/www.visualstudio.com\/downloads\/\" target=\"_blank\" rel=\"noopener noreferrer\">Download Link<\/a>]<\/li>\r\n \t<li>FusionCharts ASP.NET Wrapper [<a href=\"https:\/\/www.fusioncharts.com\/asp-net-charts\/\" target=\"_blank\" rel=\"noopener noreferrer\">Download Link<\/a>]<\/li>\r\n<\/ul>\r\n<h2><span class=\"ez-toc-section\" id=\"Creating_the_FusionCharts_Drill-down_Charts_from_a_Database_Using_Entity_Framework_and_LINQ\"><\/span>Creating the FusionCharts Drill-down Charts from a Database Using Entity Framework and LINQ<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\nWe will now see how you can create drill-down charts by sourcing data from a database using Entity Framework and LINQ. This process is bifurcated into three tasks:\r\n<ol>\r\n \t<li>Creating a new project<\/li>\r\n \t<li>Creating a database and including it in the App_Data ASP.NET folder<\/li>\r\n \t<li>Creating the .edmx file using the Entity Data Model<\/li>\r\n<\/ol>\r\n<h3><span class=\"ez-toc-section\" id=\"Creating_a_New_Project\"><\/span>Creating a New Project<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\nThe step by step process for creating a new project is given below.\r\n\r\n<strong>Step 1<\/strong>\r\nOpen <strong>Visual Studio<\/strong> and click <strong>File<\/strong> \u2192 <strong>New<\/strong> \u2192 <strong>Project<\/strong>, as shown in the image below.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16091\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Task-1-Step-1_New-Project-Path-1.png\" alt=\"\" width=\"672\" height=\"305\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Task-1-Step-1_New-Project-Path-1.png 672w, \/blog\/wp-content\/uploads\/2017\/07\/Task-1-Step-1_New-Project-Path-1-150x68.png 150w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/>\r\nThe New Project dialog box opens.\r\n\r\n<strong>Step 2<\/strong>\r\nIn the <strong>New Project<\/strong> dialog box, select <strong>Installed Templates<\/strong> \u2192 <strong>Visual C#<\/strong> \u2192 <strong>Web<\/strong> \u2192 <strong>ASP.Net Web Application (.NET Framework)<\/strong>, as shown in the image below.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16092\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Task-1-Step-2_Template-Selection-1.png\" alt=\"\" width=\"672\" height=\"412\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Task-1-Step-2_Template-Selection-1.png 672w, \/blog\/wp-content\/uploads\/2017\/07\/Task-1-Step-2_Template-Selection-1-150x92.png 150w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/>\r\n\r\n<strong>Step 3<\/strong>\r\nIn the <strong>Name<\/strong> field (in the <strong>New Project<\/strong> dialog box), type <strong>Demo Drilldown using EF and LINQ<\/strong> as the project name.\r\nA project structure, as shown in the image below, is created.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16093\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Task-1-Step-3_Project-Structure-1.png\" alt=\"\" width=\"336\" height=\"261\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Task-1-Step-3_Project-Structure-1.png 336w, \/blog\/wp-content\/uploads\/2017\/07\/Task-1-Step-3_Project-Structure-1-150x117.png 150w\" sizes=\"auto, (max-width: 336px) 100vw, 336px\" \/>\r\n<h3><span class=\"ez-toc-section\" id=\"Creating_a_Database_and_Including_it_in_the_App_Data_ASPNET_Folder\"><\/span>Creating a Database and Including it in the <strong>App_Data ASP.NET<\/strong><strong> Folder <\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<strong>Step 1<\/strong>\r\nCreate a database, <strong>Product<\/strong>, with the <strong>quarterwiseProductData<\/strong> and <strong>Series_wise_Product<\/strong> tables. Use the table structure shown in the image below.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16094\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Task-2-Step-1_Table-Structure-1.png\" alt=\"\" width=\"672\" height=\"278\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Task-2-Step-1_Table-Structure-1.png 672w, \/blog\/wp-content\/uploads\/2017\/07\/Task-2-Step-1_Table-Structure-1-150x62.png 150w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/>\r\n\r\n<strong>Step 2<\/strong>\r\nAdd the <strong>App_Data ASP.NET<\/strong> folder within the <strong>Demo Drilldown using EF and LINQ<\/strong> project as shown in the image below.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16095\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Task-2-Step-2_Add-Folder-Within-Project-1.png\" alt=\"\" width=\"672\" height=\"411\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Task-2-Step-2_Add-Folder-Within-Project-1.png 672w, \/blog\/wp-content\/uploads\/2017\/07\/Task-2-Step-2_Add-Folder-Within-Project-1-150x92.png 150w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/>\r\n\r\n<strong>Step 3<\/strong>\r\nSave the <strong>Product<\/strong> database within the <strong>App_Data<\/strong><strong> folder<\/strong>.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16096\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Task-2-Step-3_Save-Database-Within-Folder-1.png\" alt=\"\" width=\"346\" height=\"276\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Task-2-Step-3_Save-Database-Within-Folder-1.png 346w, \/blog\/wp-content\/uploads\/2017\/07\/Task-2-Step-3_Save-Database-Within-Folder-1-150x120.png 150w\" sizes=\"auto, (max-width: 346px) 100vw, 346px\" \/>\r\n<h3><span class=\"ez-toc-section\" id=\"Creating_the_edmx_File_Using_the_Entity_Data_Model\"><\/span>Creating the <strong>.edmx<\/strong> File Using the Entity Data Model<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\nA <strong>.edmx<\/strong> file is an XML file defining a storage model, a conceptual model, and the mapping between the two models. It also contains the information needed by the ADO.NET Entity Data Model Designer (Entity Designer) for rendering a model graphically.\r\n\r\nThe steps below outline the process for creating a <strong>.edmx<\/strong> file based on the <strong>Product<\/strong> database created above.\r\n\r\n<strong>Step 1<\/strong>\r\nRight click the project name, <strong>Demo Drilldown using EF and LINQ<\/strong>.\r\n\r\n<strong>Step 2<\/strong>\r\nClick <strong>Add<\/strong> \u2192 <strong>New Item<\/strong>.\r\nThe <strong>Add New Item<\/strong> dialog box opens.\r\n\r\n<strong>Step 3<\/strong>\r\nIn the <strong>Add New Item<\/strong> dialog box, click <strong>Installed<\/strong> \u2192 <strong>Visual C#<\/strong> \u2192 <strong>Data<\/strong> \u2192 <strong>ADO.NET Entity Data Model<\/strong>, as shown in the image below.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16097\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Task-3-Step-3_Item-Selection-1.png\" alt=\"\" width=\"672\" height=\"410\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-3_Item-Selection-1.png 672w, \/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-3_Item-Selection-1-150x92.png 150w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/>\r\nThe <strong>Entity Data Model Wizard<\/strong> dialog box opens.\r\n\r\n<strong>Step 4<\/strong>\r\nIn the <strong>Entity Data Model Wizard<\/strong>, from the <strong>What should the model contain<\/strong> box, select <strong>EF Designer From Database<\/strong> and click <strong>Next<\/strong>.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16098\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Task-3-Step-4_Model-Contents-1.png\" alt=\"\" width=\"629\" height=\"565\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-4_Model-Contents-1.png 629w, \/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-4_Model-Contents-1-150x135.png 150w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/>\r\n\r\n<strong>Step 5<\/strong>\r\nFrom the <strong>Which data connection should your application use to connect to the database<\/strong> drop-down, select <strong>Product.mdf<\/strong> and click <strong>Next<\/strong>.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16099\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Task-3-Step-5_Data-Connection-1.png\" alt=\"\" width=\"630\" height=\"569\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-5_Data-Connection-1.png 630w, \/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-5_Data-Connection-1-150x135.png 150w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/>\r\n\r\n<strong>Step 6<\/strong>\r\nFrom the <strong>Which Version of Entity Framework do you want to use<\/strong> radio buttons, select <strong>Entity Framework 6.X<\/strong> and click <strong>Next<\/strong>.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16100\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Task-3-Step-6_Version-Selection-1.png\" alt=\"\" width=\"629\" height=\"565\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-6_Version-Selection-1.png 629w, \/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-6_Version-Selection-1-150x135.png 150w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/>\r\n\r\n<strong>Step 7<\/strong>\r\nFrom the <strong>Which database objects do you want to include in your model<\/strong> checkbox, select both the tables and click <strong>Finish<\/strong>.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16101\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Task-3-Step-7_Database-Objects-1.png\" alt=\"\" width=\"629\" height=\"568\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-7_Database-Objects-1.png 629w, \/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-7_Database-Objects-1-150x135.png 150w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/>\r\n\r\nA visualization of the <strong>Entity<\/strong> class thus created is shown below.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16102\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Task-3-Step-7_Entity-Class-Visualization-1.png\" alt=\"\" width=\"670\" height=\"295\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-7_Entity-Class-Visualization-1.png 670w, \/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-7_Entity-Class-Visualization-1-150x66.png 150w\" sizes=\"auto, (max-width: 670px) 100vw, 670px\" \/>\r\n\r\n<strong>Step 8<\/strong>\r\nAdd two C# code files within the project. Name them <strong>ProductController.cs<\/strong> and <strong>SeriesLinkController.cs<\/strong>.\r\n\r\n<strong>Step 9<\/strong>\r\nAdd the code given below to the <strong>ProductController.cs<\/strong> file.\r\n<pre class=\"lang:visual-basic\">using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\n\r\n\r\nnamespace FCDemoWithSqlServerUsing_AspWrapper\r\n{\r\n    \/\/controller class for quaring fetched data\r\n    public class ProductController\r\n    {\r\n        \/\/funcion for getting all months\r\n        public List getMonth()\r\n        {\r\n            using (ProductEntities data = new ProductEntities())\r\n            {\r\n\r\n                var month = from product in data.quarterwiseProductDatas\r\n                            select product.Month;\r\n                return month.ToList();\r\n            }\r\n\r\n        }\r\n        \/\/for all quarters\r\n        public List getQuarter()\r\n        {\r\n            using (ProductEntities data = new ProductEntities())\r\n            {\r\n                var quarter = from product in data.quarterwiseProductDatas\r\n                              select product.quarter;\r\n                return quarter.ToList();\r\n            }\r\n\r\n        }\r\n        \/\/Fetching all values\r\n        public List getValues()\r\n        {\r\n            using (ProductEntities data = new ProductEntities())\r\n            {\r\n                var values = from product in data.quarterwiseProductDatas\r\n                             select product.Value;\r\n                return values.ToList();\r\n            }\r\n        }\r\n        \/\/Fetching series\r\n        public List getSeries()\r\n        {\r\n            using (ProductEntities data = new ProductEntities())\r\n            {\r\n                var series = from product in data.quarterwiseProductDatas\r\n                             select product.series;\r\n                return series.ToList();\r\n            }\r\n        }\r\n        \/\/Fetching Monthwise values\r\n        public List getMonthwiseValue(string series, string quarter)\r\n        {\r\n            using (ProductEntities data = new ProductEntities())\r\n            {\r\n\r\n\r\n                var monthValue = from product in data.quarterwiseProductDatas\r\n                                 where product.quarter == quarter &amp; product.series == series\r\n                                 select product.Value;\r\n\r\n\r\n\r\n\r\n\r\n                return monthValue.ToList();\r\n            }\r\n        }\r\n        \/\/Fetching quarter wise values\r\n        public List quarterWiseMonth(string quarter)\r\n        {\r\n\r\n            using (ProductEntities data = new ProductEntities())\r\n            {\r\n                var monthVal = from product in data.quarterwiseProductDatas\r\n                               where product.quarter == quarter\r\n                               orderby product.Month descending\r\n                               select product.Month;\r\n                return monthVal.ToList();\r\n            }\r\n\r\n        }\r\n    }\r\n}\r\n\r\n<\/pre>\r\n<strong>Step 10<\/strong>\r\nAdd the code given below to the <strong>SeriesLinkController.cs<\/strong> file. Along with the code added in the <strong>ProductController.cs<\/strong> file, this code will add custom controllers where LINQ has been implemented for querying the data fetched from the database using Entity Framework.\r\n<pre class=\"lang:visual-basic\">using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\n\r\n\r\nnamespace FCDemoWithSqlServerUsing_AspWrapper\r\n{\r\n    public class Series\r\n    {\r\n        public int value;\r\n        public string link;\r\n        public Series(int value,string link)\r\n        {\r\n            this.value = value;\r\n            this.link = link;\r\n        }\r\n    }\r\n    \/\/controller for handling all series information\r\n    public class SeriesLinkContoller\r\n    {\r\n        \/\/fetching all series\r\n        public List getSeries()\r\n        {\r\n            using (ProductEntities data = new ProductEntities())\r\n            {\r\n\r\n                var series = from product in data.Series_wise_Product\r\n                            select product.seriesName;\r\n                return series.ToList();\r\n            }\r\n        }\r\n        \/\/fetching series wise data\r\n        public List getSeriesWiseData(string series)\r\n        {\r\n            List valueLink = new List();\r\n            using (ProductEntities data = new ProductEntities())\r\n            {\r\n                var seriesLink = from product in data.Series_wise_Product\r\n                                 where product.seriesName == series\r\n                                 select new { linkdata = product.link, valuedata = product.SeriesValue };\r\n\r\n                foreach(var obj in seriesLink)\r\n                {\r\n                    valueLink.Add(new Series(obj.valuedata, obj.linkdata));\r\n                }\r\n            }\r\n            return valueLink;\r\n        }\r\n        \/\/Fetching series values\r\n        public List getSeriesValue()\r\n        {\r\n            List values = new List();\r\n            using (ProductEntities data = new ProductEntities())\r\n            {\r\n\r\n                var seriesValue = from product in data.Series_wise_Product\r\n                                  select product.SeriesValue;\r\n               foreach(var val in seriesValue)\r\n                {\r\n                    values.Add(val);\r\n                }\r\n            }\r\n            return values;\r\n        }\r\n        public List getLink()\r\n        {\r\n            using (ProductEntities data = new ProductEntities())\r\n            {\r\n\r\n              var  linkValue = from product in data.Series_wise_Product\r\n                            select product.link;\r\n                return linkValue.ToList();\r\n\r\n            }\r\n\r\n            }\r\n    }\r\n}\r\n\r\n<\/pre>\r\n<strong>Step 11<\/strong>\r\nCreate a new folder within the project hierarchy and name it <strong>scripts<\/strong>. Paste all FusionCharts JavaScript files in the <strong>scripts<\/strong> folder.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16103\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Task-3-Step-11_Scripts-Folder-1.png\" alt=\"\" width=\"315\" height=\"114\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-11_Scripts-Folder-1.png 315w, \/blog\/wp-content\/uploads\/2017\/07\/Task-3-Step-11_Scripts-Folder-1-150x54.png 150w\" sizes=\"auto, (max-width: 315px) 100vw, 315px\" \/>\r\n\r\n<strong>Step 12<\/strong>\r\nCreate a new web form and name it <strong>Default.aspx<\/strong>. In the <strong>Default.aspx<\/strong> file, paste the code given below.\r\n<pre class=\"lang:markup\">&lt;html xmlns=\"https:\/\/www.w3.org\/1999\/xhtml\"&gt;\r\n&lt;head runat=\"server\"&gt;\r\n    &lt;script src=\"scripts\/fusioncharts.js\"&gt;&lt;\/script&gt;\r\n    &lt;script src=\"scripts\/fusioncharts.js\"&gt;&lt;\/script&gt;\r\n    &lt;script src=\"scripts\/fusioncharts.theme.fint.js\"&gt;&lt;\/script&gt;\r\n    &lt;title&gt;Multi series column 2d drilldown demo&lt;\/title&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n    &lt;form id=\"form1\" runat=\"server\"&gt;\r\n    &lt;div&gt;\r\n    &lt;asp:Literal ID=\"l1\" runat=\"server\"&gt;\r\n        Chart will load here\r\n    &lt;\/asp:Literal&gt;\r\n    &lt;\/div&gt;\r\n    &lt;\/form&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n\t\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Web;\r\nusing System.Web.UI;\r\nusing System.Web.UI.WebControls;\r\nusing System.Text;\r\nusing FusionCharts.Charts;\r\nusing System.Web.Script.Serialization;\r\n\r\nnamespace FCDemoWithSqlServerUsing_AspWrapper\r\n{\r\n    public partial class Default : System.Web.UI.Page\r\n    {\r\n        protected void Page_Load(object sender, EventArgs e)\r\n        {\r\n\r\n            \/\/Declaringcollections to retain data fetched through controllers\r\n            \r\n            ProductController cont = new ProductController();\r\n            SeriesLinkContoller linkcont = new SeriesLinkContoller();\r\n            List ProductMonth = cont.getMonth();\r\n            List ProductQuarter = cont.getQuarter();\r\n            List ProductValue = cont.getValues();\r\n            List ProductSeries = cont.getSeries();\r\n            List SeriesNames = linkcont.getSeries();\r\n            List LinkValue = linkcont.getLink();\r\n            List SeriesValue = linkcont.getSeriesValue();\r\n\r\n            \/\/Building JSON String\r\n            StringBuilder JSON = new StringBuilder();\r\n            \/\/appending all cosmatic properties\r\n            JSON.Append(\"{\" +\r\n                  \"'chart': {\" +\r\n                  \"'caption': 'Comparison of two products on the basis of Quarterly Revenue',\" +\r\n                  \"'xAxisname': 'Quarter',\" +\r\n                  \"'yAxisName': 'Revenues (In USD)',\" +\r\n                  \"'numberPrefix': '$',\" +\r\n                  \"'plotFillAlpha': '80',\" +\r\n                  \"'paletteColors': '#0075c2,#1aaf5d',\" +\r\n                  \"'baseFontColor': '#333333',\" +\r\n                  \"'baseFont': 'Helvetica Neue,Arial',\" +\r\n                  \"'captionFontSize': '14',\" +\r\n                  \"'subcaptionFontSize': '14',\" +\r\n                  \"'subcaptionFontBold': '0',\" +\r\n                  \"'showBorder': '0',\" +\r\n                  \"'bgColor': '#ffffff',\" +\r\n                  \"'showShadow': '0',\" +\r\n                  \"'canvasBgColor': '#ffffff',\" +\r\n                  \"'canvasBorderAlpha': '0',\" +\r\n                  \"'divlineAlpha': '100',\" +\r\n                  \"'divlineColor': '#999999',\" +\r\n                  \"'divlineThickness': '1',\" +\r\n                  \"'divLineIsDashed': '1',\" +\r\n                  \"'divLineDashLen': '1',\" +\r\n                  \"'divLineGapLen': '1',\" +\r\n                  \"'usePlotGradientColor':'0',\" +\r\n                  \"'showplotborder': '0',\" +\r\n                  \"'valueFontColor': '#ffffff',\" +\r\n                  \"'placeValuesInside': '1',\" +\r\n                  \"'showHoverEffect': '1',\" +\r\n                  \"'rotateValues': '1',\" +\r\n                  \"'showXAxisLine': '1',\" +\r\n                  \"'xAxisLineThickness': '1',\" +\r\n                  \"'xAxisLineColor': '#999999',\" +\r\n                  \"'showAlternateHGridColor': '0',\" +\r\n                  \"'legendBgAlpha': '0',\" +\r\n                  \"'legendBorderAlpha': '0',\" +\r\n                  \"'legendShadow': '0',\" +\r\n                  \"'legendItemFontSize': '10',\" +\r\n                  \"'legendItemFontColor': '#666666'\" +\r\n                  \" },\"\r\n                );\r\n            \/\/appenfing into StringBuilder objectiterating through collections\r\n            JSON.Append(\"'categories': [{\" +\r\n\r\n                         \"'category': [ \");\r\n            foreach (var quar in ProductQuarter.Distinct())\r\n            {\r\n                \/\/for last element escaping comma\r\n                if (quar == ProductQuarter.Distinct().Last())\r\n                {\r\n                    JSON.Append(\"{ 'label': '\" + quar + \"' }\");\r\n                    break;\r\n\r\n                }\r\n                JSON.Append(\"{ 'label': '\" + quar + \"' },\");\r\n\r\n            }\r\n            JSON.Append(\"]\" +\r\n     \"}],\" +\r\n     \"'dataset': [\");\r\n            foreach (var prod in SeriesNames.Distinct())\r\n            {\r\n                List seriesWiseValue = linkcont.getSeriesWiseData(prod);\r\n                JSON.Append(\"{\" +\r\n                    \"'seriesname':\" + \"'\" + prod + \"',\" + \"'data': [\");\r\n                foreach (var linkValue in seriesWiseValue)\r\n                {\r\n                    if (linkValue == seriesWiseValue.Last())\r\n                    {\r\n                        JSON.Append(\"{\" +\r\n\r\n              \"'value':\" + \"'\" + linkValue.value + \"','link':\" + \"'\" + linkValue.link + \"'}\");\r\n                        break;\r\n                    }\r\n\r\n                    JSON.Append(\"{\" +\r\n\r\n             \"'value':\" + \"'\" + linkValue.value + \"','link':\" + \"'\" + linkValue.link + \"'},\");\r\n                }\r\n                if (prod == SeriesNames.Distinct().Last())\r\n                {\r\n                    JSON.Append(\"]\" +\r\n\r\n                   \" }\");\r\n                    break;\r\n                }\r\n                JSON.Append(\"]\" +\r\n\r\n                   \" },\");\r\n\r\n            }\r\n            JSON.Append(\"],\");\r\n            JSON.Append(\"'linkeddata': [\");\r\n            foreach (var quat in ProductQuarter.Distinct())\r\n            {\r\n                if (quat == ProductQuarter.Distinct().Last())\r\n                {\r\n                    JSON.Append(\"{'id': '\" + quat + \"',\" +\r\n\r\n         \"'linkedchart': {\" +\r\n                    \"'chart': {\" +\r\n                        \"'caption': 'Month wise Revenue for the 1st quarter',\" +\r\n                 \"'subCaption': 'Harrys SuperMart',\" +\r\n                 \"'xAxisname': 'Months',\" +\r\n                 \"'yAxisName': 'Revenues (In USD)',\" +\r\n                 \"'numberPrefix': '$',\" +\r\n                 \"'theme': 'fint'\" +\r\n            \" },\" +\r\n            \"'categories': [{\" +\r\n                  \"'category': [\" +\r\n\r\n                  getQuarterWiseMonth(quat) +\r\n                  \"]\" +\r\n                  \"}],\"\r\n\r\n\r\n            );\r\n                    JSON.Append(\"'dataset': [\");\r\n\r\n                    foreach (var seri in SeriesNames.Distinct())\r\n                    {\r\n                        if (seri == SeriesNames.Distinct().Last())\r\n                        {\r\n                            JSON.Append(\"{\" +\r\n                              \"'seriesname': '\" + seri + \"',\"\r\n                      + \"'data': [\" + getquarterseriesWiseData(seri, quat) + \"]}\"\r\n\r\n\r\n\r\n\r\n                              );\r\n                            break;\r\n                        }\r\n                        JSON.Append(\"{\" +\r\n                            \"'seriesname': '\" + seri + \"',\"\r\n                    + \"'data': [\" + getquarterseriesWiseData(seri, quat) + \"]},\"\r\n\r\n\r\n\r\n\r\n                            );\r\n\r\n\r\n                    }\r\n                    JSON.Append(\"]}}\");\r\n                    break;\r\n                }\r\n\r\n                JSON.Append(\"{'id': '\" + quat + \"',\" +\r\n\r\n           \"'linkedchart': {\" +\r\n                      \"'chart': {\" +\r\n                          \"'caption': 'Month wise Revenue for the 1st quarter',\" +\r\n                   \"'subCaption': 'Harrys SuperMart',\" +\r\n                   \"'xAxisname': 'Months',\" +\r\n                   \"'yAxisName': 'Revenues (In USD)',\" +\r\n                   \"'numberPrefix': '$',\" +\r\n                   \"'theme': 'fint'\" +\r\n              \" },\" +\r\n              \"'categories': [{\" +\r\n                    \"'category': [\" +\r\n\r\n                    getQuarterWiseMonth(quat) +\r\n                    \"]\" +\r\n                    \"}],\"\r\n\r\n\r\n              );\r\n                JSON.Append(\"'dataset': [\");\r\n\r\n                foreach (var seri in SeriesNames.Distinct())\r\n                {\r\n\r\n                    if (seri == SeriesNames.Distinct().Last())\r\n                    {\r\n                        JSON.Append(\"{\" +\r\n                          \"'seriesname': '\" + seri + \"'\"\r\n                  + \",'data': [\" + getquarterseriesWiseData(seri, quat) + \"]}\"\r\n\r\n                          );\r\n\r\n                        break;\r\n\r\n                    }\r\n                    JSON.Append(\"{\" +\r\n                          \"'seriesname': '\" + seri + \"',\"\r\n                  + \"'data': [\" + getquarterseriesWiseData(seri, quat) + \"]},\"\r\n\r\n                          );\r\n\r\n\r\n                }\r\n                JSON.Append(\"]}},\");\r\n            }\r\n\r\n            JSON.Append(\"]}\");\r\n            \/\/replacing all ' into \"\r\n            string str = JSON.ToString().Replace('\\'', '\\\"');\r\n            \/\/writing JSON string into a JSON file and if data will be modified it wil be reflected in json file\r\n            System.IO.File.WriteAllText(@Server.MapPath(\"json.json\"), str);\r\n            \/\/calling FC Constructor\r\n            Chart cc = new Chart(\"mscolumn2d\", \"mychart\", \"750\", \"550\", \"jsonurl\", \"json.json\");\r\n            \/\/Rendering chart by calling Render()\r\n            l1.Text = cc.Render();\r\n\r\n        }\r\n\r\n        \/\/function for fetching series wise and quarter wise values\r\n        public StringBuilder getquarterseriesWiseData(string series, string quarter)\r\n        {\r\n            ProductController cont = new ProductController();\r\n            StringBuilder subjson = new StringBuilder();\r\n\r\n            foreach (var seriwise in cont.getMonthwiseValue(series, quarter))\r\n            {\r\n                if (seriwise == cont.getMonthwiseValue(series, quarter).Last())\r\n                {\r\n                    subjson.Append(\"{\" +\r\n                    \"'value': '\" + seriwise + \"'}\");\r\n                    break;\r\n                }\r\n                subjson.Append(\"{\" +\r\n                    \"'value': '\" + seriwise + \"'},\");\r\n\r\n            }\r\n            return subjson;\r\n\r\n        }\r\n        \/\/For fetching quarter wise data.\r\n        public StringBuilder getQuarterWiseMonth(string quarter)\r\n        {\r\n            ProductController cont = new ProductController();\r\n            StringBuilder subjson = new StringBuilder();\r\n            foreach (var month in cont.quarterWiseMonth(quarter).Distinct())\r\n            {\r\n                if (month == cont.quarterWiseMonth(quarter).Distinct().Last())\r\n                {\r\n                    subjson.Append(\"{\" +\r\n                 \"'label': '\" + month + \"'}\");\r\n                    break;\r\n                }\r\n                subjson.Append(\"{\" +\r\n                 \"'label': '\" + month + \"'},\");\r\n\r\n            }\r\n            return subjson;\r\n\r\n        }\r\n    }\r\n}\r\n<\/pre>\r\n<strong>Step 13<\/strong>\r\nPress <strong>Ctrl + <\/strong><strong>F5<\/strong> to execute <strong>Default.aspx<\/strong>.\r\nYour output should look as seen in the image below.\r\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16104\" src=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/gallery\/blog\/2017\/07\/Output.png\" alt=\"\" width=\"672\" height=\"422\" srcset=\"\/blog\/wp-content\/uploads\/2017\/07\/Output.png 672w, \/blog\/wp-content\/uploads\/2017\/07\/Output-150x94.png 150w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/>\r\nIn your live chart, click the data plot for a quarter to drill-down to see the monthly revenue for that quarter.\r\n<h2><span class=\"ez-toc-section\" id=\"Was_There_a_Problem_Rendering_the_Chart\"><\/span>Was There a Problem Rendering the Chart?<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\nIn case something went wrong and you are unable to see the chart, check for the following:\r\n<ul>\r\n \t<li>The chart ID should be unique for all charts rendered on the same page. Otherwise, it will result in a JavaScript error.<\/li>\r\n \t<li>If the chart does not show up at all, check if the <strong>fusioncharts.js<\/strong> and FusionCharts wrapper <strong>FusionCharts.java<\/strong> was loaded. Also, check if the path to the <strong>fusioncharts.js<\/strong> and the <strong>FusionCharts.java<\/strong> files is correct, and whether the files exist in that location.<\/li>\r\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>All charts (except for the zoom-line chart) in FusionCharts Suite XT can be configured to be rendered as drill-down charts. Drill-down charts can be implemented using several features, for example, the data plots can be linked to other charts, to simple URLs that will be open in the same page or in a different page, [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":16033,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"coauthors":[652,650],"class_list":["post-16029","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>FusionCharts Drill-Downs with EF &amp; LINQ in Visual Studio 2026<\/title>\n<meta name=\"description\" content=\"Configure almost any chart as a drill-down visual. Use 2026 FusionCharts Suite XT to create deep-dive interfaces for your users. Improve interaction today.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"FusionCharts Drill-Downs with EF &amp; LINQ in Visual Studio 2026\" \/>\n<meta property=\"og:description\" content=\"Configure almost any chart as a drill-down visual. Use 2026 FusionCharts Suite XT to create deep-dive interfaces for your users. Improve interaction today.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/\" \/>\n<meta property=\"og:site_name\" content=\"FusionBrew - The FusionCharts Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-07-13T08:30:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-20T09:06:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/2017\/07\/New-Project-Path_Task-1-Step-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1015\" \/>\n\t<meta property=\"og:image:height\" content=\"417\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Nikita Jhanglani, Soumya Dutta\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nikita Jhanglani, Soumya Dutta\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\n\t    \"@context\": \"https:\/\/schema.org\",\n\t    \"@graph\": [\n\t        {\n\t            \"@type\": \"Article\",\n\t            \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#article\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/\"\n\t            },\n\t            \"author\": {\n\t                \"name\": \"Nikita Jhanglani\",\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/person\/270a83f8aefb80dafb2a931de0282717\"\n\t            },\n\t            \"headline\": \"FusionCharts Drill-Downs with EF &amp; LINQ in Visual Studio 2026\",\n\t            \"datePublished\": \"2017-07-13T08:30:42+00:00\",\n\t            \"dateModified\": \"2026-01-20T09:06:47+00:00\",\n\t            \"mainEntityOfPage\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/\"\n\t            },\n\t            \"wordCount\": 917,\n\t            \"commentCount\": 0,\n\t            \"publisher\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#organization\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"\/blog\/wp-content\/uploads\/2017\/07\/New-Project-Path_Task-1-Step-1.jpg\",\n\t            \"articleSection\": [\n\t                \"Tutorials\"\n\t            ],\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"CommentAction\",\n\t                    \"name\": \"Comment\",\n\t                    \"target\": [\n\t                        \"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#respond\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"WebPage\",\n\t            \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/\",\n\t            \"url\": \"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/\",\n\t            \"name\": \"FusionCharts Drill-Downs with EF &amp; LINQ in Visual Studio 2026\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#website\"\n\t            },\n\t            \"primaryImageOfPage\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#primaryimage\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"\/blog\/wp-content\/uploads\/2017\/07\/New-Project-Path_Task-1-Step-1.jpg\",\n\t            \"datePublished\": \"2017-07-13T08:30:42+00:00\",\n\t            \"dateModified\": \"2026-01-20T09:06:47+00:00\",\n\t            \"description\": \"Configure almost any chart as a drill-down visual. Use 2026 FusionCharts Suite XT to create deep-dive interfaces for your users. Improve interaction today.\",\n\t            \"breadcrumb\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#breadcrumb\"\n\t            },\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"ReadAction\",\n\t                    \"target\": [\n\t                        \"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"ImageObject\",\n\t            \"inLanguage\": \"en-US\",\n\t            \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#primaryimage\",\n\t            \"url\": \"\/blog\/wp-content\/uploads\/2017\/07\/New-Project-Path_Task-1-Step-1.jpg\",\n\t            \"contentUrl\": \"\/blog\/wp-content\/uploads\/2017\/07\/New-Project-Path_Task-1-Step-1.jpg\",\n\t            \"width\": 1015,\n\t            \"height\": 417\n\t        },\n\t        {\n\t            \"@type\": \"BreadcrumbList\",\n\t            \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#breadcrumb\",\n\t            \"itemListElement\": [\n\t                {\n\t                    \"@type\": \"ListItem\",\n\t                    \"position\": 1,\n\t                    \"name\": \"Home\",\n\t                    \"item\": \"https:\/\/www.fusioncharts.com\/blog\/\"\n\t                },\n\t                {\n\t                    \"@type\": \"ListItem\",\n\t                    \"position\": 2,\n\t                    \"name\": \"FusionCharts Drill-Downs with EF &amp; LINQ in Visual Studio 2026\"\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"WebSite\",\n\t            \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#website\",\n\t            \"url\": \"https:\/\/www.fusioncharts.com\/blog\/\",\n\t            \"name\": \"FusionBrew - The FusionCharts Blog\",\n\t            \"description\": \"Get tips and tricks on how to build effective Data Visualisation using FusionCharts\",\n\t            \"publisher\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#organization\"\n\t            },\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"SearchAction\",\n\t                    \"target\": {\n\t                        \"@type\": \"EntryPoint\",\n\t                        \"urlTemplate\": \"https:\/\/www.fusioncharts.com\/blog\/?s={search_term_string}\"\n\t                    },\n\t                    \"query-input\": {\n\t                        \"@type\": \"PropertyValueSpecification\",\n\t                        \"valueRequired\": true,\n\t                        \"valueName\": \"search_term_string\"\n\t                    }\n\t                }\n\t            ],\n\t            \"inLanguage\": \"en-US\"\n\t        },\n\t        {\n\t            \"@type\": \"Organization\",\n\t            \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#organization\",\n\t            \"name\": \"FusionCharts\",\n\t            \"url\": \"https:\/\/www.fusioncharts.com\/blog\/\",\n\t            \"logo\": {\n\t                \"@type\": \"ImageObject\",\n\t                \"inLanguage\": \"en-US\",\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/logo\/image\/\",\n\t                \"url\": \"\/blog\/wp-content\/uploads\/2020\/03\/idera-fc-logo.svg\",\n\t                \"contentUrl\": \"\/blog\/wp-content\/uploads\/2020\/03\/idera-fc-logo.svg\",\n\t                \"width\": 1,\n\t                \"height\": 1,\n\t                \"caption\": \"FusionCharts\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/logo\/image\/\"\n\t            }\n\t        },\n\t        {\n\t            \"@type\": \"Person\",\n\t            \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/person\/270a83f8aefb80dafb2a931de0282717\",\n\t            \"name\": \"Nikita Jhanglani\",\n\t            \"image\": {\n\t                \"@type\": \"ImageObject\",\n\t                \"inLanguage\": \"en-US\",\n\t                \"@id\": \"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/person\/image\/8ccbb6c1287de762e6e06a7da1088fe5\",\n\t                \"url\": \"\/blog\/wp-content\/wphb-cache\/gravatar\/6ea\/6ea57614eecc7c184539f84654fd9592x96.jpg\",\n\t                \"contentUrl\": \"\/blog\/wp-content\/wphb-cache\/gravatar\/6ea\/6ea57614eecc7c184539f84654fd9592x96.jpg\",\n\t                \"caption\": \"Nikita Jhanglani\"\n\t            },\n\t            \"url\": \"https:\/\/www.fusioncharts.com\/blog\/author\/nikita-jhanglani\/\"\n\t        }\n\t    ]\n\t}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"FusionCharts Drill-Downs with EF &amp; LINQ in Visual Studio 2026","description":"Configure almost any chart as a drill-down visual. Use 2026 FusionCharts Suite XT to create deep-dive interfaces for your users. Improve interaction today.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/","og_locale":"en_US","og_type":"article","og_title":"FusionCharts Drill-Downs with EF &amp; LINQ in Visual Studio 2026","og_description":"Configure almost any chart as a drill-down visual. Use 2026 FusionCharts Suite XT to create deep-dive interfaces for your users. Improve interaction today.","og_url":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/","og_site_name":"FusionBrew - The FusionCharts Blog","article_published_time":"2017-07-13T08:30:42+00:00","article_modified_time":"2026-01-20T09:06:47+00:00","og_image":[{"width":1015,"height":417,"url":"https:\/\/www.fusioncharts.com\/blog\/wp-content\/uploads\/2017\/07\/New-Project-Path_Task-1-Step-1.jpg","type":"image\/jpeg"}],"author":"Nikita Jhanglani, Soumya Dutta","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Nikita Jhanglani, Soumya Dutta","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#article","isPartOf":{"@id":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/"},"author":{"name":"Nikita Jhanglani","@id":"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/person\/270a83f8aefb80dafb2a931de0282717"},"headline":"FusionCharts Drill-Downs with EF &amp; LINQ in Visual Studio 2026","datePublished":"2017-07-13T08:30:42+00:00","dateModified":"2026-01-20T09:06:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/"},"wordCount":917,"commentCount":0,"publisher":{"@id":"https:\/\/www.fusioncharts.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#primaryimage"},"thumbnailUrl":"\/blog\/wp-content\/uploads\/2017\/07\/New-Project-Path_Task-1-Step-1.jpg","articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/","url":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/","name":"FusionCharts Drill-Downs with EF &amp; LINQ in Visual Studio 2026","isPartOf":{"@id":"https:\/\/www.fusioncharts.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#primaryimage"},"image":{"@id":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#primaryimage"},"thumbnailUrl":"\/blog\/wp-content\/uploads\/2017\/07\/New-Project-Path_Task-1-Step-1.jpg","datePublished":"2017-07-13T08:30:42+00:00","dateModified":"2026-01-20T09:06:47+00:00","description":"Configure almost any chart as a drill-down visual. Use 2026 FusionCharts Suite XT to create deep-dive interfaces for your users. Improve interaction today.","breadcrumb":{"@id":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#primaryimage","url":"\/blog\/wp-content\/uploads\/2017\/07\/New-Project-Path_Task-1-Step-1.jpg","contentUrl":"\/blog\/wp-content\/uploads\/2017\/07\/New-Project-Path_Task-1-Step-1.jpg","width":1015,"height":417},{"@type":"BreadcrumbList","@id":"https:\/\/www.fusioncharts.com\/blog\/creating-fusioncharts-drill-down-charts-from-database-using-entity-framework-and-linq-in-visual-studio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fusioncharts.com\/blog\/"},{"@type":"ListItem","position":2,"name":"FusionCharts Drill-Downs with EF &amp; LINQ in Visual Studio 2026"}]},{"@type":"WebSite","@id":"https:\/\/www.fusioncharts.com\/blog\/#website","url":"https:\/\/www.fusioncharts.com\/blog\/","name":"FusionBrew - The FusionCharts Blog","description":"Get tips and tricks on how to build effective Data Visualisation using FusionCharts","publisher":{"@id":"https:\/\/www.fusioncharts.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fusioncharts.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.fusioncharts.com\/blog\/#organization","name":"FusionCharts","url":"https:\/\/www.fusioncharts.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/logo\/image\/","url":"\/blog\/wp-content\/uploads\/2020\/03\/idera-fc-logo.svg","contentUrl":"\/blog\/wp-content\/uploads\/2020\/03\/idera-fc-logo.svg","width":1,"height":1,"caption":"FusionCharts"},"image":{"@id":"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/person\/270a83f8aefb80dafb2a931de0282717","name":"Nikita Jhanglani","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fusioncharts.com\/blog\/#\/schema\/person\/image\/8ccbb6c1287de762e6e06a7da1088fe5","url":"\/blog\/wp-content\/wphb-cache\/gravatar\/6ea\/6ea57614eecc7c184539f84654fd9592x96.jpg","contentUrl":"\/blog\/wp-content\/wphb-cache\/gravatar\/6ea\/6ea57614eecc7c184539f84654fd9592x96.jpg","caption":"Nikita Jhanglani"},"url":"https:\/\/www.fusioncharts.com\/blog\/author\/nikita-jhanglani\/"}]}},"_links":{"self":[{"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/posts\/16029","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/comments?post=16029"}],"version-history":[{"count":0,"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/posts\/16029\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/media\/16033"}],"wp:attachment":[{"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/media?parent=16029"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/categories?post=16029"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/tags?post=16029"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.fusioncharts.com\/blog\/wp-json\/wp\/v2\/coauthors?post=16029"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}