Step 1:
Create a new Web application by selecting Dynamic Data Web Application. Feel free to give any name of the Web application.
After clicking OK, in solution explorer you could see, there is a Dynamic Data folder. This folder contains templates for different CRUD operations. This folder also contains .ascx for all different data types. (See the below image).
Step 2:
Right click on Web Project and Add a New Item. From Data tab select Linq to Sql Class. Feel free to give any name for dbml class.
Click on Database Server explorer and drag the tables on designer of Linq to Sql class.
After dragging the tables .dbml file will look like below image. (For you this may be change because you might be using different database ,if you are using NorthWind and you selected all the tables then it would be exactly same )
Step 3:
Click on Global.asax file. Go to the Model.RegisterContext. See at the lines enclosed in rectangle below. We need to
-
Uncomment that line of code
-
Put DataContext name there.
-
Make ScaffoldAllTables to true.
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Xml.Linq;
using System.Web.Routing;
using System.Web.DynamicData;
namespace BasicDynamicDatasample
{
public class Global : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
MetaModel model = new MetaModel();
// IMPORTANT: DATA MODEL REGISTRATION
// Uncomment this line to register LINQ to SQL classes or an ADO.NET Entity Data
// model for ASP.NET Dynamic Data. Set ScaffoldAllTables = true only if you are sure // that you want all tables in the data model to support a scaffold (i.e. templates) // view. To control scaffolding for individual tables, create a partial class for
// the table and apply the [Scaffold(true)] attribute to the partial class.
// Note: Make sure that you change "YourDataContextType" to the name of the data
context
// class in your application.
//model.RegisterContext(typeof(YourDataContextType), new ContextConfiguration() { ScaffoldAllTables = false });
// The following statement supports separate-page mode, where the List, Detail, Insert, and
// Update tasks are performed by using separate pages. To enable this mode, uncomment the following
// route definition, and comment out the route definitions in the combined-page mode section that follows.
routes.Add(new DynamicDataRoute("{table}/{action}.aspx")
{
Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }),
Model = model
});
// The following statements support combined-page mode, where the List, Detail, Insert, and
// Update tasks are performed by using the same page. To enable this mode, uncomment the
// following routes and comment out the route definition in the separate-page mode section above.
//routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx") {
// Action = PageAction.List,
// ViewName = "ListDetails",
// Model = model
//});
//routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx") {
// Action = PageAction.Details,
// ViewName = "ListDetails",
// Model = model
//});
}
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}