diff --git a/.github/workflows/gitleaks.yaml b/.github/workflows/gitleaks.yaml
index c115f77..f20f0ad 100644
--- a/.github/workflows/gitleaks.yaml
+++ b/.github/workflows/gitleaks.yaml
@@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4.2.2
- name: Install the gitleaks
run: wget https://github.com/zricethezav/gitleaks/releases/download/v8.15.2/gitleaks_8.15.2_linux_x64.tar.gz
shell: pwsh
@@ -21,18 +21,24 @@ jobs:
continue-on-error: true
- name: Setup NuGet.exe
if: steps.gitleaks.outcome != 'success'
- uses: nuget/setup-nuget@v1
+ uses: nuget/setup-nuget@v2
with:
nuget-version: latest
- - name: Install the dotnet
+ - name: Install Mono
if: steps.gitleaks.outcome != 'success'
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: '3.1.x'
+ run: |
+ sudo apt update
+ sudo apt install -y mono-complete
+ - name: Install the dotnet SDK to a custom directory
+ if: steps.gitleaks.outcome != 'success'
+ run: |
+ mkdir -p $GITHUB_WORKSPACE/dotnet
+ curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --install-dir $GITHUB_WORKSPACE/dotnet --channel 6.0
- name: Install the report tool packages
if: steps.gitleaks.outcome != 'success'
run: |
+ export PATH=$GITHUB_WORKSPACE/dotnet:$PATH
nuget install "Syncfusion.Email" -source ${{ secrets.NexusFeedLink }} -ExcludeVersion
- dir $GITHUB_WORKSPACE/Syncfusion.Email/lib/netcoreapp3.1
- dotnet $GITHUB_WORKSPACE/Syncfusion.Email/lib/netcoreapp3.1/GitleaksReportMail.dll ${{ secrets.CITEAMCREDENTIALS }} "$GITHUB_REF_NAME" ${{ secrets.NETWORKCREDENTIALS }} ${{ secrets.NETWORKKEY }} "$GITHUB_WORKSPACE" ${{ secrets.ORGANIZATIONNAME }}
- exit 1
\ No newline at end of file
+ dir $GITHUB_WORKSPACE/Syncfusion.Email/lib/net6.0
+ dotnet $GITHUB_WORKSPACE/Syncfusion.Email/lib/net6.0/GitleaksReportMail.dll ${{ secrets.CITEAMCREDENTIALS }} "$GITHUB_REF_NAME" ${{ secrets.NETWORKCREDENTIALS }} ${{ secrets.NETWORKKEY }} "$GITHUB_WORKSPACE" ${{ secrets.ORGANIZATIONNAME }}
+ exit 1
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/DesignTimeBuild/.dtbcache.v2 b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/DesignTimeBuild/.dtbcache.v2
new file mode 100644
index 0000000..8f1a525
Binary files /dev/null and b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/4b3d87ec-3a78-4497-afd2-61b4c859cd98.vsidx b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/4b3d87ec-3a78-4497-afd2-61b4c859cd98.vsidx
new file mode 100644
index 0000000..3e3c5e8
Binary files /dev/null and b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/4b3d87ec-3a78-4497-afd2-61b4c859cd98.vsidx differ
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/8f3a0cbc-5e6e-4d7f-9f4f-127f5ae190c1.vsidx b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/8f3a0cbc-5e6e-4d7f-9f4f-127f5ae190c1.vsidx
new file mode 100644
index 0000000..15bfd35
Binary files /dev/null and b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/8f3a0cbc-5e6e-4d7f-9f4f-127f5ae190c1.vsidx differ
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/b69547f4-aaca-4b10-beec-a720c7083c17.vsidx b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/b69547f4-aaca-4b10-beec-a720c7083c17.vsidx
new file mode 100644
index 0000000..278268c
Binary files /dev/null and b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/b69547f4-aaca-4b10-beec-a720c7083c17.vsidx differ
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/dcf63019-c2b0-4d81-b423-ccdbc1b97b47.vsidx b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/dcf63019-c2b0-4d81-b423-ccdbc1b97b47.vsidx
new file mode 100644
index 0000000..496b84a
Binary files /dev/null and b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/dcf63019-c2b0-4d81-b423-ccdbc1b97b47.vsidx differ
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/e70cbf42-63a5-47a3-8468-b4bcbaf2da2f.vsidx b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/e70cbf42-63a5-47a3-8468-b4bcbaf2da2f.vsidx
new file mode 100644
index 0000000..d06cdba
Binary files /dev/null and b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/FileContentIndex/e70cbf42-63a5-47a3-8468-b4bcbaf2da2f.vsidx differ
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/config/applicationhost.config b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/config/applicationhost.config
new file mode 100644
index 0000000..0d88f0d
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/config/applicationhost.config
@@ -0,0 +1,1016 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/v17/.futdcache.v2 b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/v17/.futdcache.v2
new file mode 100644
index 0000000..799adb0
Binary files /dev/null and b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/v17/.futdcache.v2 differ
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/v17/.suo b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/v17/.suo
new file mode 100644
index 0000000..b523bed
Binary files /dev/null and b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/v17/.suo differ
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/v17/DocumentLayout.backup.json b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/v17/DocumentLayout.backup.json
new file mode 100644
index 0000000..7467215
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/v17/DocumentLayout.backup.json
@@ -0,0 +1,117 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using customadaptor\\customadaptor_mssql\\customadaptor_mssql\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
+ "RelativeMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|solutionrelative:customadaptor_mssql\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using customadaptor\\customadaptor_mssql\\customadaptor_mssql\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|solutionrelative:customadaptor_mssql\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using customadaptor\\customadaptor_mssql\\customadaptor_mssql\\wwwroot\\js\\customadaptor.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
+ "RelativeMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|solutionrelative:customadaptor_mssql\\wwwroot\\js\\customadaptor.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using customadaptor\\customadaptor_mssql\\customadaptor_mssql\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
+ "RelativeMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|solutionrelative:customadaptor_mssql\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using customadaptor\\customadaptor_mssql\\customadaptor_mssql\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+ "RelativeMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|solutionrelative:customadaptor_mssql\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using customadaptor\\customadaptor_mssql\\customadaptor_mssql\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|solutionrelative:customadaptor_mssql\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 3,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "CustomAdaptor.js",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\wwwroot\\js\\CustomAdaptor.js",
+ "RelativeDocumentMoniker": "CustomAdaptor_MSSQL\\wwwroot\\js\\CustomAdaptor.js",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\wwwroot\\js\\CustomAdaptor.js",
+ "RelativeToolTip": "CustomAdaptor_MSSQL\\wwwroot\\js\\CustomAdaptor.js",
+ "ViewState": "AgIAAAYAAAAAAAAAAAAAABUAAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
+ "WhenOpened": "2025-04-14T04:23:46.08Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 5,
+ "Title": "Program.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\Program.cs",
+ "RelativeDocumentMoniker": "CustomAdaptor_MSSQL\\Program.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\Program.cs",
+ "RelativeToolTip": "CustomAdaptor_MSSQL\\Program.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAVAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-04T10:21:11.546Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "launchSettings.json",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\Properties\\launchSettings.json",
+ "RelativeDocumentMoniker": "CustomAdaptor_MSSQL\\Properties\\launchSettings.json",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\Properties\\launchSettings.json",
+ "RelativeToolTip": "CustomAdaptor_MSSQL\\Properties\\launchSettings.json",
+ "ViewState": "AgIAAAYAAAAAAAAAAAAAAAwAAAAfAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+ "WhenOpened": "2025-04-04T10:20:37.638Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "index.js",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\wwwroot\\js\\index.js",
+ "RelativeDocumentMoniker": "CustomAdaptor_MSSQL\\wwwroot\\js\\index.js",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\wwwroot\\js\\index.js",
+ "RelativeToolTip": "CustomAdaptor_MSSQL\\wwwroot\\js\\index.js",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAAlAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
+ "WhenOpened": "2025-04-04T10:19:17.848Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "index.html",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\wwwroot\\index.html",
+ "RelativeDocumentMoniker": "CustomAdaptor_MSSQL\\wwwroot\\index.html",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\wwwroot\\index.html",
+ "RelativeToolTip": "CustomAdaptor_MSSQL\\wwwroot\\index.html",
+ "ViewState": "AgIAAAsAAAAAAAAAAAAwwBQAAABpAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
+ "WhenOpened": "2025-04-04T10:18:29.918Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "GridController.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\Controllers\\GridController.cs",
+ "RelativeDocumentMoniker": "CustomAdaptor_MSSQL\\Controllers\\GridController.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\Controllers\\GridController.cs",
+ "RelativeToolTip": "CustomAdaptor_MSSQL\\Controllers\\GridController.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAC4AAAANAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-04T10:14:44.999Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/v17/DocumentLayout.json b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/v17/DocumentLayout.json
new file mode 100644
index 0000000..8b6c010
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/CustomAdaptor_MSSQL/v17/DocumentLayout.json
@@ -0,0 +1,117 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using customadaptor\\customadaptor_mssql\\customadaptor_mssql\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
+ "RelativeMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|solutionrelative:customadaptor_mssql\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using customadaptor\\customadaptor_mssql\\customadaptor_mssql\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|solutionrelative:customadaptor_mssql\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using customadaptor\\customadaptor_mssql\\customadaptor_mssql\\wwwroot\\js\\customadaptor.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
+ "RelativeMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|solutionrelative:customadaptor_mssql\\wwwroot\\js\\customadaptor.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using customadaptor\\customadaptor_mssql\\customadaptor_mssql\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
+ "RelativeMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|solutionrelative:customadaptor_mssql\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using customadaptor\\customadaptor_mssql\\customadaptor_mssql\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+ "RelativeMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|solutionrelative:customadaptor_mssql\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using customadaptor\\customadaptor_mssql\\customadaptor_mssql\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{02538732-B5AE-4508-AB76-FC1D4EC8F974}|CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL.csproj|solutionrelative:customadaptor_mssql\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 3,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "CustomAdaptor.js",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\wwwroot\\js\\CustomAdaptor.js",
+ "RelativeDocumentMoniker": "CustomAdaptor_MSSQL\\wwwroot\\js\\CustomAdaptor.js",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\wwwroot\\js\\CustomAdaptor.js",
+ "RelativeToolTip": "CustomAdaptor_MSSQL\\wwwroot\\js\\CustomAdaptor.js",
+ "ViewState": "AgIAAAYAAAAAAAAAAAAAABUAAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
+ "WhenOpened": "2025-04-14T04:23:46.08Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 5,
+ "Title": "Program.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\Program.cs",
+ "RelativeDocumentMoniker": "CustomAdaptor_MSSQL\\Program.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\Program.cs",
+ "RelativeToolTip": "CustomAdaptor_MSSQL\\Program.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAVAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-04T10:21:11.546Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "launchSettings.json",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\Properties\\launchSettings.json",
+ "RelativeDocumentMoniker": "CustomAdaptor_MSSQL\\Properties\\launchSettings.json",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\Properties\\launchSettings.json",
+ "RelativeToolTip": "CustomAdaptor_MSSQL\\Properties\\launchSettings.json",
+ "ViewState": "AgIAAAYAAAAAAAAAAAAAAAwAAAAfAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+ "WhenOpened": "2025-04-04T10:20:37.638Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "index.js",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\wwwroot\\js\\index.js",
+ "RelativeDocumentMoniker": "CustomAdaptor_MSSQL\\wwwroot\\js\\index.js",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\wwwroot\\js\\index.js",
+ "RelativeToolTip": "CustomAdaptor_MSSQL\\wwwroot\\js\\index.js",
+ "ViewState": "AgIAABUAAAAAAAAAAAAAAB0AAAAPAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
+ "WhenOpened": "2025-04-04T10:19:17.848Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "index.html",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\wwwroot\\index.html",
+ "RelativeDocumentMoniker": "CustomAdaptor_MSSQL\\wwwroot\\index.html",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\wwwroot\\index.html",
+ "RelativeToolTip": "CustomAdaptor_MSSQL\\wwwroot\\index.html",
+ "ViewState": "AgIAAAsAAAAAAAAAAAAwwBQAAABpAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
+ "WhenOpened": "2025-04-04T10:18:29.918Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "GridController.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\Controllers\\GridController.cs",
+ "RelativeDocumentMoniker": "CustomAdaptor_MSSQL\\Controllers\\GridController.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using CustomAdaptor\\CustomAdaptor_MSSQL\\CustomAdaptor_MSSQL\\Controllers\\GridController.cs",
+ "RelativeToolTip": "CustomAdaptor_MSSQL\\Controllers\\GridController.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAC4AAAANAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-04T10:14:44.999Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/ProjectEvaluation/customadaptor_mssql.metadata.v9.bin b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/ProjectEvaluation/customadaptor_mssql.metadata.v9.bin
new file mode 100644
index 0000000..cd5f265
Binary files /dev/null and b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/ProjectEvaluation/customadaptor_mssql.metadata.v9.bin differ
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/ProjectEvaluation/customadaptor_mssql.projects.v9.bin b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/ProjectEvaluation/customadaptor_mssql.projects.v9.bin
new file mode 100644
index 0000000..f16109c
Binary files /dev/null and b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/ProjectEvaluation/customadaptor_mssql.projects.v9.bin differ
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/ProjectEvaluation/customadaptor_mssql.strings.v9.bin b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/ProjectEvaluation/customadaptor_mssql.strings.v9.bin
new file mode 100644
index 0000000..43622d1
Binary files /dev/null and b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/.vs/ProjectEvaluation/customadaptor_mssql.strings.v9.bin differ
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL.sln b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL.sln
new file mode 100644
index 0000000..8536edc
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL.sln
@@ -0,0 +1,24 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.13.35818.85
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomAdaptor_MSSQL", "CustomAdaptor_MSSQL\CustomAdaptor_MSSQL.csproj", "{02538732-B5AE-4508-AB76-FC1D4EC8F974}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {02538732-B5AE-4508-AB76-FC1D4EC8F974}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {02538732-B5AE-4508-AB76-FC1D4EC8F974}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {02538732-B5AE-4508-AB76-FC1D4EC8F974}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {02538732-B5AE-4508-AB76-FC1D4EC8F974}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {C9292693-ADEC-4C4F-877A-4B7F2DF23000}
+ EndGlobalSection
+EndGlobal
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/App_Data/NORTHWIND.MDF b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/App_Data/NORTHWIND.MDF
new file mode 100644
index 0000000..4bea70d
Binary files /dev/null and b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/App_Data/NORTHWIND.MDF differ
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/App_Data/NORTHWIND_log.ldf b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/App_Data/NORTHWIND_log.ldf
new file mode 100644
index 0000000..0721775
Binary files /dev/null and b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/App_Data/NORTHWIND_log.ldf differ
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/Controllers/GridController.cs b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/Controllers/GridController.cs
new file mode 100644
index 0000000..adfaa47
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/Controllers/GridController.cs
@@ -0,0 +1,266 @@
+using Microsoft.AspNetCore.Mvc;
+using System.ComponentModel.DataAnnotations;
+using System.Data;
+using Syncfusion.EJ2.Base;
+using Microsoft.Data.SqlClient;
+
+namespace CustomAdaptor_MSSQL.Server.Controllers
+{
+ [ApiController]
+ public class GridController : ControllerBase
+ {
+ string ConnectionString = @"";
+
+ ///
+ /// Processes the DataManager request to perform searching, filtering, sorting, and paging operations.
+ ///
+ /// Contains the details of the data operation requested.
+ /// Returns a JSON object with the filtered, sorted, and paginated data along with the total record count.
+ [HttpPost]
+ [Route("api/[controller]")]
+ public object Post([FromBody] DataManagerRequest DataManagerRequest)
+ {
+ // Retrieve data from the data source (e.g., database).
+ IQueryable DataSource = GetOrderData().AsQueryable();
+
+ // Initialize QueryableOperation instance.
+ QueryableOperation queryableOperation = new QueryableOperation();
+
+ // Handling searching operation.
+ if (DataManagerRequest.Search != null && DataManagerRequest.Search.Count > 0)
+ {
+ DataSource = queryableOperation.PerformSearching(DataSource, DataManagerRequest.Search);
+ // Add custom logic here if needed and remove above method.
+ }
+
+ // Handling filtering operation.
+ if (DataManagerRequest.Where != null && DataManagerRequest.Where.Count > 0)
+ {
+ foreach (WhereFilter condition in DataManagerRequest.Where)
+ {
+ foreach (WhereFilter predicate in condition.predicates)
+ {
+ DataSource = queryableOperation.PerformFiltering(DataSource, DataManagerRequest.Where, predicate.Operator);
+ // Add custom logic here if needed and remove above method.
+ }
+ }
+ }
+
+ // Handling sorting operation.
+ if (DataManagerRequest.Sorted != null && DataManagerRequest.Sorted.Count > 0)
+ {
+ DataSource = queryableOperation.PerformSorting(DataSource, DataManagerRequest.Sorted);
+ // Add custom logic here if needed and remove above method.
+ }
+
+ // Get the total count of records.
+ int totalRecordsCount = DataSource.Count();
+
+ // Handling paging operation.
+ if (DataManagerRequest.Skip != 0)
+ {
+ DataSource = queryableOperation.PerformSkip(DataSource, DataManagerRequest.Skip);
+ // Add custom logic here if needed and remove above method.
+ }
+ if (DataManagerRequest.Take != 0)
+ {
+ DataSource = queryableOperation.PerformTake(DataSource, DataManagerRequest.Take);
+ // Add custom logic here if needed and remove above method.
+ }
+
+ // Return data based on the request.
+ return new { result = DataSource, count = totalRecordsCount };
+ }
+ ///
+ /// Retrieves the order data from the database.
+ ///
+ /// Returns a list of orders fetched from the database.
+ [HttpGet]
+ [Route("api/[controller]")]
+ public List GetOrderData()
+ {
+ string queryStr = "SELECT * FROM dbo.Orders ORDER BY OrderID;";
+ SqlConnection sqlConnection = new(ConnectionString);
+ sqlConnection.Open();
+ SqlCommand sqlCommand = new(queryStr, sqlConnection);
+ SqlDataAdapter DataAdapter = new(sqlCommand);
+ DataTable DataTable = new();
+ DataAdapter.Fill(DataTable);
+ sqlConnection.Close();
+
+ // Map data to a list.
+ List dataSource = (from DataRow Data in DataTable.Rows
+ select new Orders()
+ {
+ OrderID = Convert.ToInt32(Data["OrderID"]),
+ CustomerID = Data["CustomerID"].ToString(),
+ EmployeeID = Convert.IsDBNull(Data["EmployeeID"]) ? 0 : Convert.ToUInt16(Data["EmployeeID"]),
+ ShipCity = Data["ShipCity"].ToString(),
+ Freight = Convert.ToDecimal(Data["Freight"])
+ }
+ ).ToList();
+ return dataSource;
+ }
+
+ ///
+ /// Inserts a new data item into the data collection.
+ ///
+ /// It contains the new record detail which is need to be inserted.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/Insert")]
+ public void Insert([FromBody] CRUDModel value)
+ {
+ //Create query to insert the specific into the database by accessing its properties.
+ string queryStr = $"Insert into Orders(CustomerID,Freight,ShipCity,EmployeeID) values('{value.value.CustomerID}','{value.value.Freight}','{value.value.ShipCity}','{value.value.EmployeeID}')";
+ SqlConnection SqlConnection = new SqlConnection(ConnectionString);
+ SqlConnection.Open();
+
+ // Execute the SQL command.
+ SqlCommand SqlCommand = new SqlCommand(queryStr, SqlConnection);
+
+ // Execute this code to reflect the changes into the database.
+ SqlCommand.ExecuteNonQuery();
+ SqlConnection.Close();
+
+ // Add custom logic here if needed and remove above method.
+ }
+
+ ///
+ /// Update a existing data item from the data collection.
+ ///
+ /// It contains the updated record detail which is need to be updated.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/Update")]
+ public void Update([FromBody] CRUDModel value)
+ {
+ // Create query to update the changes into the database by accessing its properties.
+ string queryStr = $"Update Orders set CustomerID='{value.value.CustomerID}', Freight='{value.value.Freight}',EmployeeID='{value.value.EmployeeID}',ShipCity='{value.value.ShipCity}' where OrderID='{value.value.OrderID}'";
+ SqlConnection SqlConnection = new SqlConnection(ConnectionString);
+ SqlConnection.Open();
+
+ // Execute the SQL command.
+ SqlCommand SqlCommand = new SqlCommand(queryStr, SqlConnection);
+
+ // Execute this code to reflect the changes into the database.
+ SqlCommand.ExecuteNonQuery();
+ SqlConnection.Close();
+
+ //Add custom logic here if needed and remove above method.
+ }
+
+ ///
+ /// Remove a specific data item from the data collection.
+ ///
+ /// It contains the specific record detail which is need to be removed.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/Remove")]
+ public void Remove([FromBody] CRUDModel value)
+ {
+ // Create query to remove the specific from database by passing the primary key column value.
+ string queryStr = $"Delete from Orders where OrderID={value.key}";
+ SqlConnection SqlConnection = new SqlConnection(ConnectionString);
+ SqlConnection.Open();
+
+ // Execute the SQL command.
+ SqlCommand SqlCommand = new SqlCommand(queryStr, SqlConnection);
+
+ // Execute this code to reflect the changes into the database.
+ SqlCommand.ExecuteNonQuery();
+ SqlConnection.Close();
+
+ // Add custom logic here if needed and remove above method.
+ }
+
+ ///
+ /// Batch update (Insert, Update, and Delete) a collection of data items from the data collection.
+ ///
+ /// The set of information along with details about the CRUD actions to be executed from the database.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/BatchUpdate")]
+ public IActionResult BatchUpdate([FromBody] CRUDModel value)
+ {
+ if (value.changed != null && value.changed.Count > 0)
+ {
+ foreach (Orders Record in (IEnumerable)value.changed)
+ {
+ // Create query to update the changes into the database by accessing its properties.
+ string queryStr = $"Update Orders set CustomerID='{Record.CustomerID}', Freight='{Record.Freight}',EmployeeID='{Record.EmployeeID}',ShipCity='{Record.ShipCity}' where OrderID='{Record.OrderID}'";
+ SqlConnection SqlConnection = new SqlConnection(ConnectionString);
+ SqlConnection.Open();
+
+ // Execute the SQL command.
+ SqlCommand SqlCommand = new SqlCommand(queryStr, SqlConnection);
+
+ // Execute this code to reflect the changes into the database.
+ SqlCommand.ExecuteNonQuery();
+ SqlConnection.Close();
+
+ // Add custom logic here if needed and remove above method.
+ }
+ }
+ if (value.added != null && value.added.Count > 0)
+ {
+ foreach (Orders Record in (IEnumerable)value.added)
+ {
+ // Create query to insert the specific into the database by accessing its properties.
+ string queryStr = $"Insert into Orders(CustomerID,Freight,ShipCity,EmployeeID) values('{Record.CustomerID}','{Record.Freight}','{Record.ShipCity}','{Record.EmployeeID}')";
+ SqlConnection SqlConnection = new SqlConnection(ConnectionString);
+ SqlConnection.Open();
+
+ // Execute the SQL command.
+ SqlCommand SqlCommand = new SqlCommand(queryStr, SqlConnection);
+
+ // Execute this code to reflect the changes into the database.
+ SqlCommand.ExecuteNonQuery();
+ SqlConnection.Close();
+
+ // Add custom logic here if needed and remove above method.
+ }
+ }
+ if (value.deleted != null && value.deleted.Count > 0)
+ {
+ foreach (Orders Record in (IEnumerable)value.deleted)
+ {
+ // Create query to remove the specific from database by passing the primary key column value.
+ string queryStr = $"Delete from Orders where OrderID={Record.OrderID}";
+ SqlConnection SqlConnection = new SqlConnection(ConnectionString);
+ SqlConnection.Open();
+
+ // Execute the SQL command.
+ SqlCommand SqlCommand = new SqlCommand(queryStr, SqlConnection);
+
+ // Execute this code to reflect the changes into the database.
+ SqlCommand.ExecuteNonQuery();
+ SqlConnection.Close();
+
+ // Add custom logic here if needed and remove above method.
+ }
+ }
+ return new JsonResult(value);
+ }
+ public class CRUDModel where T : class
+ {
+ public string? action { get; set; }
+ public string? keyColumn { get; set; }
+ public object? key { get; set; }
+ public T? value { get; set; }
+ public List? added { get; set; }
+ public List? changed { get; set; }
+ public List? deleted { get; set; }
+ public IDictionary? @params { get; set; }
+ }
+ public class Orders
+ {
+ [Key]
+ public int? OrderID { get; set; }
+ public string? CustomerID { get; set; }
+ public int? EmployeeID { get; set; }
+ public decimal? Freight { get; set; }
+ public string? ShipCity { get; set; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/Controllers/WeatherForecastController.cs b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/Controllers/WeatherForecastController.cs
new file mode 100644
index 0000000..7d1af87
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/Controllers/WeatherForecastController.cs
@@ -0,0 +1,32 @@
+using Microsoft.AspNetCore.Mvc;
+
+namespace CustomAdaptor_MSSQL.Controllers;
+
+[ApiController]
+[Route("[controller]")]
+public class WeatherForecastController : ControllerBase
+{
+ private static readonly string[] Summaries = new[]
+ {
+ "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
+ };
+
+ private readonly ILogger _logger;
+
+ public WeatherForecastController(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ [HttpGet(Name = "GetWeatherForecast")]
+ public IEnumerable Get()
+ {
+ return Enumerable.Range(1, 5).Select(index => new WeatherForecast
+ {
+ Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
+ TemperatureC = Random.Shared.Next(-20, 55),
+ Summary = Summaries[Random.Shared.Next(Summaries.Length)]
+ })
+ .ToArray();
+ }
+}
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL.csproj b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL.csproj
new file mode 100644
index 0000000..4a5ec07
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL.csproj
@@ -0,0 +1,16 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL.csproj.user b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL.csproj.user
new file mode 100644
index 0000000..9ff5820
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL.csproj.user
@@ -0,0 +1,6 @@
+
+
+
+ https
+
+
\ No newline at end of file
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL.http b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL.http
new file mode 100644
index 0000000..7c2d19c
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL.http
@@ -0,0 +1,6 @@
+@CustomAdaptor_MSSQL_HostAddress = http://localhost:5270
+
+GET {{CustomAdaptor_MSSQL_HostAddress}}/weatherforecast/
+Accept: application/json
+
+###
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/Program.cs b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/Program.cs
new file mode 100644
index 0000000..8841217
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/Program.cs
@@ -0,0 +1,26 @@
+var builder = WebApplication.CreateBuilder(args);
+
+// Add services to the container.
+
+builder.Services.AddControllers();
+// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
+builder.Services.AddEndpointsApiExplorer();
+builder.Services.AddSwaggerGen();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (app.Environment.IsDevelopment())
+{
+ app.UseSwagger();
+ app.UseSwaggerUI();
+}
+app.UseDefaultFiles();
+app.UseStaticFiles();
+app.UseHttpsRedirection();
+
+app.UseAuthorization();
+
+app.MapControllers();
+
+app.Run();
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/Properties/launchSettings.json b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/Properties/launchSettings.json
new file mode 100644
index 0000000..20b536a
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/Properties/launchSettings.json
@@ -0,0 +1,41 @@
+{
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:47760",
+ "sslPort": 44392
+ }
+ },
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "applicationUrl": "http://localhost:5270",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ //"launchUrl": "swagger",
+ "applicationUrl": "https://localhost:7159;http://localhost:5270",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/WeatherForecast.cs b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/WeatherForecast.cs
new file mode 100644
index 0000000..987d528
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/WeatherForecast.cs
@@ -0,0 +1,13 @@
+namespace CustomAdaptor_MSSQL
+{
+ public class WeatherForecast
+ {
+ public DateOnly Date { get; set; }
+
+ public int TemperatureC { get; set; }
+
+ public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
+
+ public string? Summary { get; set; }
+ }
+}
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/appsettings.Development.json b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/appsettings.Development.json
new file mode 100644
index 0000000..0c208ae
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/appsettings.json b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/appsettings.json
new file mode 100644
index 0000000..10f68b8
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/wwwroot/index.html b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/wwwroot/index.html
new file mode 100644
index 0000000..b7ccd88
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/wwwroot/index.html
@@ -0,0 +1,30 @@
+
+
+
+ EJ2 Grid
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/wwwroot/js/CustomAdaptor.js b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/wwwroot/js/CustomAdaptor.js
new file mode 100644
index 0000000..389f023
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/wwwroot/js/CustomAdaptor.js
@@ -0,0 +1,60 @@
+export class CustomAdaptor extends ej.data.UrlAdaptor {
+ processResponse() {
+ // Calling base class processResponse function.
+ const original = super.processResponse.apply(this, arguments);
+ return original;
+ }
+
+
+ insert(dm, data) {
+ return {
+ url: dm.dataSource.insertUrl || dm.dataSource.url,
+ data: JSON.stringify({
+ __RequestVerificationToken: "Syncfusion",
+ value: data,
+ action: 'insert'
+ }),
+ type: 'POST'
+ };
+ }
+
+ update(dm, keyField, value) {
+ return {
+ url: dm.dataSource.updateUrl || dm.dataSource.url,
+ data: JSON.stringify({
+ __RequestVerificationToken: "Syncfusion",
+ value: value,
+ action: 'update'
+ }),
+ type: 'POST'
+ };
+ }
+
+ remove(dm, keyField, value) {
+ return {
+ url: dm.dataSource.removeUrl || dm.dataSource.url,
+ data: JSON.stringify({
+ __RequestVerificationToken: "Syncfusion",
+ key: value,
+ keyColumn: keyField,
+ action: 'remove'
+ }),
+ type: 'POST'
+ };
+ }
+
+ batchRequest(dm, changes, e, query, original) {
+ return {
+ url: dm.dataSource.batchUrl || dm.dataSource.url,
+ data: JSON.stringify({
+ __RequestVerificationToken: "Syncfusion",
+ added: changes.addedRecords,
+ changed: changes.changedRecords,
+ deleted: changes.deletedRecords,
+ key: e.key,
+ action: 'batch'
+ }),
+ type: 'POST'
+ };
+ }
+}
\ No newline at end of file
diff --git a/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/wwwroot/js/index.js b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/wwwroot/js/index.js
new file mode 100644
index 0000000..78f4cb2
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/CustomAdaptor_MSSQL/CustomAdaptor_MSSQL/wwwroot/js/index.js
@@ -0,0 +1,32 @@
+import { CustomAdaptor } from './CustomAdaptor.js';
+
+ej.grids.Grid.Inject(ej.grids.Filter, ej.grids.Sort, ej.grids.Page, ej.grids.Edit, ej.grids.Toolbar);
+
+let data = new ej.data.DataManager({
+ url: 'https://localhost:xxxx/api/Grid',
+ insertUrl: 'https://localhost:xxxx/api/Grid/Insert',
+ updateUrl: 'https://localhost:xxxx/api/Grid/Update',
+ removeUrl: 'https://localhost:xxxx/api/Grid/Remove',
+ // Enable batch URL when batch editing is enabled.
+ batchUrl: 'https://localhost:xxxx/api/Grid/BatchUpdate',
+ adaptor: new CustomAdaptor()
+});
+
+var grid = new ej.grids.Grid({
+ dataSource: data,
+ allowGrouping: true,
+ allowFiltering: true,
+ allowSorting: true,
+ allowPaging: true,
+ toolbar: ['Add', 'Edit', 'Delete', 'Update', 'Cancel', 'Search'],
+ editSettings: { allowEditing: true, allowAdding: true, allowDeleting: true },
+ columns: [
+ { field: 'OrderID', headerText: 'Order ID', textAlign: 'Right', width: 100, isPrimaryKey: true, isIdentity: true, type: 'number' },
+ { field: 'CustomerID', headerText: 'Customer ID', validationRules: { required: true }, type: 'string', width: 100 },
+ { field: 'EmployeeID', headerText: 'Employee ID', validationRules: { required: true, number: true }, width: 100 },
+ { field: 'Freight', headerText: 'Freight', validationRules: { required: true, min: 1, max: 1000 }, textAlign: 'Right', width: 100 },
+ { field: 'ShipCity', headerText: 'Ship City', validationRules: { required: true }, textAlign: 'Right', width: 120 }
+ ],
+ height: 348
+});
+grid.appendTo('#Grid');
\ No newline at end of file
diff --git a/Binding MS SQL database using CustomAdaptor/README.md b/Binding MS SQL database using CustomAdaptor/README.md
new file mode 100644
index 0000000..e5c5a68
--- /dev/null
+++ b/Binding MS SQL database using CustomAdaptor/README.md
@@ -0,0 +1,15 @@
+## JavaScript Grid MSSQL connectivity using CustomAdaptor
+
+A project that enables data binding and CRUD action handling in the Syncfusion JavaScript Grid to a MSSQL Server using CustomAdaptor feature of the Grid.
+
+## Steps to Run the Sample
+
+1. Download or unzip the project and open the project in **Visual Studio 2022**.
+
+2. Replace the connected database's connection string in the `GridController.cs` file.
+
+3. In the JavaScript client project, open `js/index.js` and replace the port number in the API URL where it says `xxxx` with the actual backend server port.
+
+4. Build the project to restore dependencies and compile it.
+
+5. Run the project.
\ No newline at end of file
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/DesignTimeBuild/.dtbcache.v2 b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/DesignTimeBuild/.dtbcache.v2
new file mode 100644
index 0000000..3d60554
Binary files /dev/null and b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/6aa9816e-f2a7-4d1a-b29c-7e9bca1c7944.vsidx b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/6aa9816e-f2a7-4d1a-b29c-7e9bca1c7944.vsidx
new file mode 100644
index 0000000..4cdc3f4
Binary files /dev/null and b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/6aa9816e-f2a7-4d1a-b29c-7e9bca1c7944.vsidx differ
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/7e78394c-7683-4cab-ba6c-f89e2dbc8c21.vsidx b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/7e78394c-7683-4cab-ba6c-f89e2dbc8c21.vsidx
new file mode 100644
index 0000000..b30e87d
Binary files /dev/null and b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/7e78394c-7683-4cab-ba6c-f89e2dbc8c21.vsidx differ
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/99fe800b-2a4e-43ed-953c-84a8ad5e2a15.vsidx b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/99fe800b-2a4e-43ed-953c-84a8ad5e2a15.vsidx
new file mode 100644
index 0000000..3fb573c
Binary files /dev/null and b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/99fe800b-2a4e-43ed-953c-84a8ad5e2a15.vsidx differ
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/caa0db58-4df7-442f-9672-33845e45208e.vsidx b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/caa0db58-4df7-442f-9672-33845e45208e.vsidx
new file mode 100644
index 0000000..f3c1198
Binary files /dev/null and b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/caa0db58-4df7-442f-9672-33845e45208e.vsidx differ
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/e8d1beb9-290e-412e-95a9-3348d99660b7.vsidx b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/e8d1beb9-290e-412e-95a9-3348d99660b7.vsidx
new file mode 100644
index 0000000..836611d
Binary files /dev/null and b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/FileContentIndex/e8d1beb9-290e-412e-95a9-3348d99660b7.vsidx differ
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/config/applicationhost.config b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/config/applicationhost.config
new file mode 100644
index 0000000..0d88f0d
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/config/applicationhost.config
@@ -0,0 +1,1016 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/v17/.futdcache.v2 b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/v17/.futdcache.v2
new file mode 100644
index 0000000..3a4375b
Binary files /dev/null and b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/v17/.futdcache.v2 differ
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/v17/.suo b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/v17/.suo
new file mode 100644
index 0000000..a211b04
Binary files /dev/null and b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/v17/.suo differ
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/v17/DocumentLayout.backup.json b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/v17/DocumentLayout.backup.json
new file mode 100644
index 0000000..70238bf
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/v17/DocumentLayout.backup.json
@@ -0,0 +1,102 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using urladaptor\\grid_mssql\\grid_mssql\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|solutionrelative:grid_mssql\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using urladaptor\\grid_mssql\\grid_mssql\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
+ "RelativeMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|solutionrelative:grid_mssql\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using urladaptor\\grid_mssql\\grid_mssql\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
+ "RelativeMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|solutionrelative:grid_mssql\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using urladaptor\\grid_mssql\\grid_mssql\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|solutionrelative:grid_mssql\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using urladaptor\\grid_mssql\\grid_mssql\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+ "RelativeMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|solutionrelative:grid_mssql\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "GridController.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\Controllers\\GridController.cs",
+ "RelativeDocumentMoniker": "Grid_MSSQL\\Controllers\\GridController.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\Controllers\\GridController.cs",
+ "RelativeToolTip": "Grid_MSSQL\\Controllers\\GridController.cs",
+ "ViewState": "AgIAAAMAAAAAAAAAAAAAAPIAAAApAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-04T09:53:30.7Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "launchSettings.json",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\Properties\\launchSettings.json",
+ "RelativeDocumentMoniker": "Grid_MSSQL\\Properties\\launchSettings.json",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\Properties\\launchSettings.json",
+ "RelativeToolTip": "Grid_MSSQL\\Properties\\launchSettings.json",
+ "ViewState": "AgIAAAwAAAAAAAAAAAAAABkAAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+ "WhenOpened": "2025-04-04T09:52:07.537Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "Program.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\Program.cs",
+ "RelativeDocumentMoniker": "Grid_MSSQL\\Program.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\Program.cs",
+ "RelativeToolTip": "Grid_MSSQL\\Program.cs",
+ "ViewState": "AgIAAAYAAAAAAAAAAAAAABIAAAAVAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-04T09:52:02.002Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "index.js",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\wwwroot\\js\\index.js",
+ "RelativeDocumentMoniker": "Grid_MSSQL\\wwwroot\\js\\index.js",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\wwwroot\\js\\index.js",
+ "RelativeToolTip": "Grid_MSSQL\\wwwroot\\js\\index.js",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
+ "WhenOpened": "2025-04-04T09:51:32.987Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "index.html",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\wwwroot\\index.html",
+ "RelativeDocumentMoniker": "Grid_MSSQL\\wwwroot\\index.html",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\wwwroot\\index.html",
+ "RelativeToolTip": "Grid_MSSQL\\wwwroot\\index.html",
+ "ViewState": "AgIAAAYAAAAAAAAAAAAQwB0AAAAHAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
+ "WhenOpened": "2025-04-04T09:51:23.043Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/v17/DocumentLayout.json b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/v17/DocumentLayout.json
new file mode 100644
index 0000000..8768f9a
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/Grid_MSSQL/v17/DocumentLayout.json
@@ -0,0 +1,102 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using urladaptor\\grid_mssql\\grid_mssql\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
+ "RelativeMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|solutionrelative:grid_mssql\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using urladaptor\\grid_mssql\\grid_mssql\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|solutionrelative:grid_mssql\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using urladaptor\\grid_mssql\\grid_mssql\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
+ "RelativeMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|solutionrelative:grid_mssql\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using urladaptor\\grid_mssql\\grid_mssql\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|solutionrelative:grid_mssql\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding ms sql database using urladaptor\\grid_mssql\\grid_mssql\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+ "RelativeMoniker": "D:0:0:{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}|Grid_MSSQL\\Grid_MSSQL.csproj|solutionrelative:grid_mssql\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 3,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "GridController.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\Controllers\\GridController.cs",
+ "RelativeDocumentMoniker": "Grid_MSSQL\\Controllers\\GridController.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\Controllers\\GridController.cs",
+ "RelativeToolTip": "Grid_MSSQL\\Controllers\\GridController.cs",
+ "ViewState": "AgIAAAMAAAAAAAAAAAAAAPIAAAApAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-04T09:53:30.7Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "launchSettings.json",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\Properties\\launchSettings.json",
+ "RelativeDocumentMoniker": "Grid_MSSQL\\Properties\\launchSettings.json",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\Properties\\launchSettings.json",
+ "RelativeToolTip": "Grid_MSSQL\\Properties\\launchSettings.json",
+ "ViewState": "AgIAAAwAAAAAAAAAAAAAABkAAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+ "WhenOpened": "2025-04-04T09:52:07.537Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "Program.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\Program.cs",
+ "RelativeDocumentMoniker": "Grid_MSSQL\\Program.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\Program.cs",
+ "RelativeToolTip": "Grid_MSSQL\\Program.cs",
+ "ViewState": "AgIAAAYAAAAAAAAAAAAAABIAAAAVAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-04T09:52:02.002Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "index.js",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\wwwroot\\js\\index.js",
+ "RelativeDocumentMoniker": "Grid_MSSQL\\wwwroot\\js\\index.js",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\wwwroot\\js\\index.js",
+ "RelativeToolTip": "Grid_MSSQL\\wwwroot\\js\\index.js",
+ "ViewState": "AgIAABIAAAAAAAAAAAAAABsAAAAPAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
+ "WhenOpened": "2025-04-04T09:51:32.987Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "index.html",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\wwwroot\\index.html",
+ "RelativeDocumentMoniker": "Grid_MSSQL\\wwwroot\\index.html",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding MS SQL database using UrlAdaptor\\Grid_MSSQL\\Grid_MSSQL\\wwwroot\\index.html",
+ "RelativeToolTip": "Grid_MSSQL\\wwwroot\\index.html",
+ "ViewState": "AgIAAAYAAAAAAAAAAAAQwB0AAAAHAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
+ "WhenOpened": "2025-04-04T09:51:23.043Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/ProjectEvaluation/grid_mssql.metadata.v9.bin b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/ProjectEvaluation/grid_mssql.metadata.v9.bin
new file mode 100644
index 0000000..7bc2680
Binary files /dev/null and b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/ProjectEvaluation/grid_mssql.metadata.v9.bin differ
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/ProjectEvaluation/grid_mssql.projects.v9.bin b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/ProjectEvaluation/grid_mssql.projects.v9.bin
new file mode 100644
index 0000000..da00304
Binary files /dev/null and b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/ProjectEvaluation/grid_mssql.projects.v9.bin differ
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/ProjectEvaluation/grid_mssql.strings.v9.bin b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/ProjectEvaluation/grid_mssql.strings.v9.bin
new file mode 100644
index 0000000..cc183d1
Binary files /dev/null and b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/.vs/ProjectEvaluation/grid_mssql.strings.v9.bin differ
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL.sln b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL.sln
new file mode 100644
index 0000000..8b20f48
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL.sln
@@ -0,0 +1,24 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.13.35818.85
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Grid_MSSQL", "Grid_MSSQL\Grid_MSSQL.csproj", "{E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E85261B5-F8E1-4BD2-B4BF-4EEF009B52B7}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {0DC96E47-05F7-4E9E-9F8F-CB2696E1D23E}
+ EndGlobalSection
+EndGlobal
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/App_Data/NORTHWIND.MDF b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/App_Data/NORTHWIND.MDF
new file mode 100644
index 0000000..aea5919
Binary files /dev/null and b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/App_Data/NORTHWIND.MDF differ
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/App_Data/NORTHWIND_log.ldf b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/App_Data/NORTHWIND_log.ldf
new file mode 100644
index 0000000..138f7bb
Binary files /dev/null and b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/App_Data/NORTHWIND_log.ldf differ
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Controllers/GridController.cs b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Controllers/GridController.cs
new file mode 100644
index 0000000..ce8be8e
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Controllers/GridController.cs
@@ -0,0 +1,268 @@
+using Microsoft.AspNetCore.Mvc;
+using System.ComponentModel.DataAnnotations;
+using System.Data;
+using Syncfusion.EJ2.Base;
+using Microsoft.Data.SqlClient;
+
+namespace Grid_MSSQL.Server.Controllers
+{
+ [ApiController]
+ public class GridController : ControllerBase
+ {
+ string ConnectionString = @"";
+
+ ///
+ /// Processes the DataManager request to perform searching, filtering, sorting, and paging operations.
+ ///
+ /// Contains the details of the data operation requested.
+ /// Returns a JSON object with the filtered, sorted, and paginated data along with the total record count.
+ [HttpPost]
+ [Route("api/[controller]")]
+ public object Post([FromBody] DataManagerRequest DataManagerRequest)
+ {
+ // Retrieve data from the data source (e.g., database).
+ IQueryable DataSource = GetOrderData().AsQueryable();
+
+ // Initialize QueryableOperation instance.
+ QueryableOperation queryableOperation = new QueryableOperation();
+
+ // Handling searching operation.
+ if (DataManagerRequest.Search != null && DataManagerRequest.Search.Count > 0)
+ {
+ DataSource = queryableOperation.PerformSearching(DataSource, DataManagerRequest.Search);
+ // Add custom logic here if needed and remove above method.
+ }
+
+ // Handling filtering operation.
+ if (DataManagerRequest.Where != null && DataManagerRequest.Where.Count > 0)
+ {
+ foreach (WhereFilter condition in DataManagerRequest.Where)
+ {
+ foreach (WhereFilter predicate in condition.predicates)
+ {
+ DataSource = queryableOperation.PerformFiltering(DataSource, DataManagerRequest.Where, predicate.Operator);
+ // Add custom logic here if needed and remove above method.
+ }
+ }
+ }
+
+ // Handling sorting operation.
+ if (DataManagerRequest.Sorted != null && DataManagerRequest.Sorted.Count > 0)
+ {
+ DataSource = queryableOperation.PerformSorting(DataSource, DataManagerRequest.Sorted);
+ // Add custom logic here if needed and remove above method.
+ }
+
+ // Get the total count of records.
+ int totalRecordsCount = DataSource.Count();
+
+ // Handling paging operation.
+ if (DataManagerRequest.Skip != 0)
+ {
+ DataSource = queryableOperation.PerformSkip(DataSource, DataManagerRequest.Skip);
+ // Add custom logic here if needed and remove above method.
+ }
+ if (DataManagerRequest.Take != 0)
+ {
+ DataSource = queryableOperation.PerformTake(DataSource, DataManagerRequest.Take);
+ // Add custom logic here if needed and remove above method.
+ }
+
+ // Return data based on the request.
+ return new { result = DataSource, count = totalRecordsCount };
+ }
+ ///
+ /// Retrieves the order data from the database.
+ ///
+ /// Returns a list of orders fetched from the database.
+ [HttpGet]
+ [Route("api/[controller]")]
+ public List GetOrderData()
+ {
+ string queryStr = "SELECT * FROM dbo.Orders ORDER BY OrderID;";
+ SqlConnection sqlConnection = new(ConnectionString);
+ sqlConnection.Open();
+ SqlCommand sqlCommand = new(queryStr, sqlConnection);
+ SqlDataAdapter DataAdapter = new(sqlCommand);
+ DataTable DataTable = new();
+ DataAdapter.Fill(DataTable);
+ sqlConnection.Close();
+
+ // Map data to a list.
+ List dataSource = (from DataRow Data in DataTable.Rows
+ select new Orders()
+ {
+ OrderID = Convert.ToInt32(Data["OrderID"]),
+ CustomerID = Data["CustomerID"].ToString(),
+ EmployeeID = Convert.IsDBNull(Data["EmployeeID"]) ? 0 : Convert.ToUInt16(Data["EmployeeID"]),
+ ShipCity = Data["ShipCity"].ToString(),
+ Freight = Convert.ToDecimal(Data["Freight"])
+ }
+ ).ToList();
+ return dataSource;
+ }
+
+ ///
+ /// Inserts a new data item into the data collection.
+ ///
+ /// It contains the new record detail which is need to be inserted.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/Insert")]
+ public void Insert([FromBody] CRUDModel value)
+ {
+ //Create query to insert the specific into the database by accessing its properties.
+ string queryStr = $"Insert into Orders(CustomerID,Freight,ShipCity,EmployeeID) values('{value.value.CustomerID}','{value.value.Freight}','{value.value.ShipCity}','{value.value.EmployeeID}')";
+ SqlConnection SqlConnection = new SqlConnection(ConnectionString);
+ SqlConnection.Open();
+
+ // Execute the SQL command.
+ SqlCommand SqlCommand = new SqlCommand(queryStr, SqlConnection);
+
+ // Execute this code to reflect the changes into the database.
+ SqlCommand.ExecuteNonQuery();
+ SqlConnection.Close();
+
+ // Add custom logic here if needed and remove above method.
+ }
+
+ ///
+ /// Update a existing data item from the data collection.
+ ///
+ /// It contains the updated record detail which is need to be updated.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/Update")]
+ public void Update([FromBody] CRUDModel value)
+ {
+ // Create query to update the changes into the database by accessing its properties.
+ string queryStr = $"Update Orders set CustomerID='{value.value.CustomerID}', Freight='{value.value.Freight}',EmployeeID='{value.value.EmployeeID}',ShipCity='{value.value.ShipCity}' where OrderID='{value.value.OrderID}'";
+ SqlConnection SqlConnection = new SqlConnection(ConnectionString);
+ SqlConnection.Open();
+
+ // Execute the SQL command.
+ SqlCommand SqlCommand = new SqlCommand(queryStr, SqlConnection);
+
+ // Execute this code to reflect the changes into the database.
+ SqlCommand.ExecuteNonQuery();
+ SqlConnection.Close();
+
+ //Add custom logic here if needed and remove above method.
+ }
+
+ ///
+ /// Remove a specific data item from the data collection.
+ ///
+ /// It contains the specific record detail which is need to be removed.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/Remove")]
+ public void Remove([FromBody] CRUDModel value)
+ {
+ // Create query to remove the specific from database by passing the primary key column value.
+ string queryStr = $"Delete from Orders where OrderID={value.key}";
+ SqlConnection SqlConnection = new SqlConnection(ConnectionString);
+ SqlConnection.Open();
+
+ // Execute the SQL command.
+ SqlCommand SqlCommand = new SqlCommand(queryStr, SqlConnection);
+
+ // Execute this code to reflect the changes into the database.
+ SqlCommand.ExecuteNonQuery();
+ SqlConnection.Close();
+
+ // Add custom logic here if needed and remove above method.
+ }
+
+ ///
+ /// Batch update (Insert, Update, and Delete) a collection of data items from the data collection.
+ ///
+ /// The set of information along with details about the CRUD actions to be executed from the database.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/BatchUpdate")]
+ public IActionResult BatchUpdate([FromBody] CRUDModel value)
+ {
+ if (value.changed != null && value.changed.Count > 0)
+ {
+ foreach (Orders Record in (IEnumerable)value.changed)
+ {
+ // Create query to update the changes into the database by accessing its properties.
+ string queryStr = $"Update Orders set CustomerID='{Record.CustomerID}', Freight='{Record.Freight}',EmployeeID='{Record.EmployeeID}',ShipCity='{Record.ShipCity}' where OrderID='{Record.OrderID}'";
+ SqlConnection SqlConnection = new SqlConnection(ConnectionString);
+ SqlConnection.Open();
+
+ // Execute the SQL command.
+ SqlCommand SqlCommand = new SqlCommand(queryStr, SqlConnection);
+
+ // Execute this code to reflect the changes into the database.
+ SqlCommand.ExecuteNonQuery();
+ SqlConnection.Close();
+
+ // Add custom logic here if needed and remove above method.
+ }
+ }
+ if (value.added != null && value.added.Count > 0)
+ {
+ foreach (Orders Record in (IEnumerable)value.added)
+ {
+ // Create query to insert the specific into the database by accessing its properties.
+ string queryStr = $"Insert into Orders(CustomerID,Freight,ShipCity,EmployeeID) values('{Record.CustomerID}','{Record.Freight}','{Record.ShipCity}','{Record.EmployeeID}')";
+ SqlConnection SqlConnection = new SqlConnection(ConnectionString);
+ SqlConnection.Open();
+
+ // Execute the SQL command.
+ SqlCommand SqlCommand = new SqlCommand(queryStr, SqlConnection);
+
+ // Execute this code to reflect the changes into the database.
+ SqlCommand.ExecuteNonQuery();
+ SqlConnection.Close();
+
+ // Add custom logic here if needed and remove above method.
+ }
+ }
+ if (value.deleted != null && value.deleted.Count > 0)
+ {
+ foreach (Orders Record in (IEnumerable)value.deleted)
+ {
+ // Create query to remove the specific from database by passing the primary key column value.
+ string queryStr = $"Delete from Orders where OrderID={Record.OrderID}";
+ SqlConnection SqlConnection = new SqlConnection(ConnectionString);
+ SqlConnection.Open();
+
+ // Execute the SQL command.
+ SqlCommand SqlCommand = new SqlCommand(queryStr, SqlConnection);
+
+ // Execute this code to reflect the changes into the database.
+ SqlCommand.ExecuteNonQuery();
+ SqlConnection.Close();
+
+ // Add custom logic here if needed and remove above method.
+ }
+ }
+ return new JsonResult(value);
+ }
+
+ public class CRUDModel where T : class
+ {
+ public string? action { get; set; }
+ public string? keyColumn { get; set; }
+ public object? key { get; set; }
+ public T? value { get; set; }
+ public List? added { get; set; }
+ public List? changed { get; set; }
+ public List? deleted { get; set; }
+ public IDictionary? @params { get; set; }
+ }
+
+ public class Orders
+ {
+ [Key]
+ public int? OrderID { get; set; }
+ public string? CustomerID { get; set; }
+ public int? EmployeeID { get; set; }
+ public decimal? Freight { get; set; }
+ public string? ShipCity { get; set; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Controllers/WeatherForecastController.cs b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Controllers/WeatherForecastController.cs
new file mode 100644
index 0000000..23d8746
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Controllers/WeatherForecastController.cs
@@ -0,0 +1,32 @@
+using Microsoft.AspNetCore.Mvc;
+
+namespace Grid_MSSQL.Controllers;
+
+[ApiController]
+[Route("[controller]")]
+public class WeatherForecastController : ControllerBase
+{
+ private static readonly string[] Summaries = new[]
+ {
+ "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
+ };
+
+ private readonly ILogger _logger;
+
+ public WeatherForecastController(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ [HttpGet(Name = "GetWeatherForecast")]
+ public IEnumerable Get()
+ {
+ return Enumerable.Range(1, 5).Select(index => new WeatherForecast
+ {
+ Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
+ TemperatureC = Random.Shared.Next(-20, 55),
+ Summary = Summaries[Random.Shared.Next(Summaries.Length)]
+ })
+ .ToArray();
+ }
+}
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Grid_MSSQL.csproj b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Grid_MSSQL.csproj
new file mode 100644
index 0000000..4a5ec07
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Grid_MSSQL.csproj
@@ -0,0 +1,16 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Grid_MSSQL.csproj.user b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Grid_MSSQL.csproj.user
new file mode 100644
index 0000000..9ff5820
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Grid_MSSQL.csproj.user
@@ -0,0 +1,6 @@
+
+
+
+ https
+
+
\ No newline at end of file
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Grid_MSSQL.http b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Grid_MSSQL.http
new file mode 100644
index 0000000..bfcfad2
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Grid_MSSQL.http
@@ -0,0 +1,6 @@
+@Grid_MSSQL_HostAddress = http://localhost:5280
+
+GET {{Grid_MSSQL_HostAddress}}/weatherforecast/
+Accept: application/json
+
+###
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Program.cs b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Program.cs
new file mode 100644
index 0000000..8841217
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Program.cs
@@ -0,0 +1,26 @@
+var builder = WebApplication.CreateBuilder(args);
+
+// Add services to the container.
+
+builder.Services.AddControllers();
+// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
+builder.Services.AddEndpointsApiExplorer();
+builder.Services.AddSwaggerGen();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (app.Environment.IsDevelopment())
+{
+ app.UseSwagger();
+ app.UseSwaggerUI();
+}
+app.UseDefaultFiles();
+app.UseStaticFiles();
+app.UseHttpsRedirection();
+
+app.UseAuthorization();
+
+app.MapControllers();
+
+app.Run();
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Properties/launchSettings.json b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Properties/launchSettings.json
new file mode 100644
index 0000000..e1b598e
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/Properties/launchSettings.json
@@ -0,0 +1,41 @@
+{
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:57312",
+ "sslPort": 44378
+ }
+ },
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "applicationUrl": "http://localhost:5280",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ //"launchUrl": "swagger",
+ "applicationUrl": "https://localhost:7254;http://localhost:5280",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/WeatherForecast.cs b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/WeatherForecast.cs
new file mode 100644
index 0000000..a0f3974
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/WeatherForecast.cs
@@ -0,0 +1,13 @@
+namespace Grid_MSSQL
+{
+ public class WeatherForecast
+ {
+ public DateOnly Date { get; set; }
+
+ public int TemperatureC { get; set; }
+
+ public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
+
+ public string? Summary { get; set; }
+ }
+}
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/appsettings.Development.json b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/appsettings.Development.json
new file mode 100644
index 0000000..0c208ae
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/appsettings.json b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/appsettings.json
new file mode 100644
index 0000000..10f68b8
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/wwwroot/index.html b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/wwwroot/index.html
new file mode 100644
index 0000000..b7ccd88
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/wwwroot/index.html
@@ -0,0 +1,30 @@
+
+
+
+ EJ2 Grid
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/wwwroot/js/index.js b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/wwwroot/js/index.js
new file mode 100644
index 0000000..45969eb
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/Grid_MSSQL/Grid_MSSQL/wwwroot/js/index.js
@@ -0,0 +1,30 @@
+ej.grids.Grid.Inject(ej.grids.Filter, ej.grids.Sort, ej.grids.Page, ej.grids.Edit, ej.grids.Toolbar);
+
+let data = new ej.data.DataManager({
+ url: 'https://localhost:xxxx/api/Grid',
+ insertUrl: 'https://localhost:xxxx/api/Grid/Insert',
+ updateUrl: 'https://localhost:xxxx/api/Grid/Update',
+ removeUrl: 'https://localhost:xxxx/api/Grid/Remove',
+ // Enable batch URL when batch editing is enabled.
+ batchUrl: 'https://localhost:xxxx/api/Grid/BatchUpdate',
+ adaptor: new ej.data.UrlAdaptor()
+});
+
+var grid = new ej.grids.Grid({
+ dataSource: data,
+ allowGrouping: true,
+ allowFiltering: true,
+ allowSorting: true,
+ allowPaging: true,
+ toolbar: ['Add', 'Edit', 'Delete', 'Update', 'Cancel', 'Search'],
+ editSettings: { allowEditing: true, allowAdding: true, allowDeleting: true },
+ columns: [
+ { field: 'OrderID', headerText: 'Order ID', textAlign: 'Right', width: 100, isPrimaryKey: true, isIdentity: true, type: 'number' },
+ { field: 'CustomerID', headerText: 'Customer ID', validationRules: { required: true }, type: 'string', width: 100 },
+ { field: 'EmployeeID', headerText: 'Employee ID', validationRules: { required: true, number: true }, width: 100 },
+ { field: 'Freight', headerText: 'Freight', validationRules: { required: true, min: 1, max: 1000 }, textAlign: 'Right', width: 100 },
+ { field: 'ShipCity', headerText: 'Ship City', validationRules: { required: true }, textAlign: 'Right', width: 120 }
+ ],
+ height: 348
+});
+grid.appendTo('#Grid');
\ No newline at end of file
diff --git a/Binding MS SQL database using UrlAdaptor/README.md b/Binding MS SQL database using UrlAdaptor/README.md
new file mode 100644
index 0000000..e5c5a68
--- /dev/null
+++ b/Binding MS SQL database using UrlAdaptor/README.md
@@ -0,0 +1,15 @@
+## JavaScript Grid MSSQL connectivity using CustomAdaptor
+
+A project that enables data binding and CRUD action handling in the Syncfusion JavaScript Grid to a MSSQL Server using CustomAdaptor feature of the Grid.
+
+## Steps to Run the Sample
+
+1. Download or unzip the project and open the project in **Visual Studio 2022**.
+
+2. Replace the connected database's connection string in the `GridController.cs` file.
+
+3. In the JavaScript client project, open `js/index.js` and replace the port number in the API URL where it says `xxxx` with the actual backend server port.
+
+4. Build the project to restore dependencies and compile it.
+
+5. Run the project.
\ No newline at end of file
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/DesignTimeBuild/.dtbcache.v2 b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/DesignTimeBuild/.dtbcache.v2
new file mode 100644
index 0000000..4068b66
Binary files /dev/null and b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/0c8db8b8-0c98-432a-97cb-f1d412797bb9.vsidx b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/0c8db8b8-0c98-432a-97cb-f1d412797bb9.vsidx
new file mode 100644
index 0000000..781ca05
Binary files /dev/null and b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/0c8db8b8-0c98-432a-97cb-f1d412797bb9.vsidx differ
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/6aa721cd-0ed9-4379-82a6-11e24cc5a2d1.vsidx b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/6aa721cd-0ed9-4379-82a6-11e24cc5a2d1.vsidx
new file mode 100644
index 0000000..a0901b9
Binary files /dev/null and b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/6aa721cd-0ed9-4379-82a6-11e24cc5a2d1.vsidx differ
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/702893d2-4a14-4419-912e-c65b83c542f7.vsidx b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/702893d2-4a14-4419-912e-c65b83c542f7.vsidx
new file mode 100644
index 0000000..82accc3
Binary files /dev/null and b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/702893d2-4a14-4419-912e-c65b83c542f7.vsidx differ
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/bb3963f1-080c-4074-bcb2-4035b5b89e58.vsidx b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/bb3963f1-080c-4074-bcb2-4035b5b89e58.vsidx
new file mode 100644
index 0000000..8112b36
Binary files /dev/null and b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/bb3963f1-080c-4074-bcb2-4035b5b89e58.vsidx differ
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/bc396c7f-2bd0-4fd8-958d-e8fcd68ed1ce.vsidx b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/bc396c7f-2bd0-4fd8-958d-e8fcd68ed1ce.vsidx
new file mode 100644
index 0000000..114357f
Binary files /dev/null and b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/FileContentIndex/bc396c7f-2bd0-4fd8-958d-e8fcd68ed1ce.vsidx differ
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/config/applicationhost.config b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/config/applicationhost.config
new file mode 100644
index 0000000..0d88f0d
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/config/applicationhost.config
@@ -0,0 +1,1016 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/v17/.futdcache.v2 b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/v17/.futdcache.v2
new file mode 100644
index 0000000..3fc7c97
Binary files /dev/null and b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/v17/.futdcache.v2 differ
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/v17/.suo b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/v17/.suo
new file mode 100644
index 0000000..896b40e
Binary files /dev/null and b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/v17/.suo differ
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/v17/DocumentLayout.backup.json b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/v17/DocumentLayout.backup.json
new file mode 100644
index 0000000..6273370
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/v17/DocumentLayout.backup.json
@@ -0,0 +1,118 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and customadaptor\\customadaptor_entityframework\\customadaptor_entityframework\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
+ "RelativeMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|solutionrelative:customadaptor_entityframework\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and customadaptor\\customadaptor_entityframework\\customadaptor_entityframework\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|solutionrelative:customadaptor_entityframework\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and customadaptor\\customadaptor_entityframework\\customadaptor_entityframework\\wwwroot\\js\\customadaptor.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
+ "RelativeMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|solutionrelative:customadaptor_entityframework\\wwwroot\\js\\customadaptor.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and customadaptor\\customadaptor_entityframework\\customadaptor_entityframework\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
+ "RelativeMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|solutionrelative:customadaptor_entityframework\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and customadaptor\\customadaptor_entityframework\\customadaptor_entityframework\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|solutionrelative:customadaptor_entityframework\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and customadaptor\\customadaptor_entityframework\\customadaptor_entityframework\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+ "RelativeMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|solutionrelative:customadaptor_entityframework\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "index.js",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\wwwroot\\js\\index.js",
+ "RelativeDocumentMoniker": "CustomAdaptor_EntityFramework\\wwwroot\\js\\index.js",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\wwwroot\\js\\index.js",
+ "RelativeToolTip": "CustomAdaptor_EntityFramework\\wwwroot\\js\\index.js",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAIAAABlAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
+ "WhenOpened": "2025-04-03T08:35:43.239Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "CustomAdaptor.js",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\wwwroot\\js\\CustomAdaptor.js",
+ "RelativeDocumentMoniker": "CustomAdaptor_EntityFramework\\wwwroot\\js\\CustomAdaptor.js",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\wwwroot\\js\\CustomAdaptor.js",
+ "RelativeToolTip": "CustomAdaptor_EntityFramework\\wwwroot\\js\\CustomAdaptor.js",
+ "ViewState": "AgIAACwAAAAAAAAAAAAAwDsAAAABAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
+ "WhenOpened": "2025-04-03T08:35:26.199Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "Program.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\Program.cs",
+ "RelativeDocumentMoniker": "CustomAdaptor_EntityFramework\\Program.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\Program.cs",
+ "RelativeToolTip": "CustomAdaptor_EntityFramework\\Program.cs",
+ "ViewState": "AgIAAAIAAAAAAAAAAAAcwBIAAAAVAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-03T08:33:59.041Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "index.html",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\wwwroot\\index.html",
+ "RelativeDocumentMoniker": "CustomAdaptor_EntityFramework\\wwwroot\\index.html",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\wwwroot\\index.html",
+ "RelativeToolTip": "CustomAdaptor_EntityFramework\\wwwroot\\index.html",
+ "ViewState": "AgIAAA0AAAAAAAAAAAAowBcAAAAGAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
+ "WhenOpened": "2025-04-03T08:33:45.28Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 5,
+ "Title": "launchSettings.json",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\Properties\\launchSettings.json",
+ "RelativeDocumentMoniker": "CustomAdaptor_EntityFramework\\Properties\\launchSettings.json",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\Properties\\launchSettings.json",
+ "RelativeToolTip": "CustomAdaptor_EntityFramework\\Properties\\launchSettings.json",
+ "ViewState": "AgIAAA8AAAAAAAAAAAAYwBkAAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+ "WhenOpened": "2025-04-03T08:33:22.99Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "GridController.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\Controllers\\GridController.cs",
+ "RelativeDocumentMoniker": "CustomAdaptor_EntityFramework\\Controllers\\GridController.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\Controllers\\GridController.cs",
+ "RelativeToolTip": "CustomAdaptor_EntityFramework\\Controllers\\GridController.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAABFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-03T08:31:54.599Z",
+ "EditorCaption": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/v17/DocumentLayout.json b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/v17/DocumentLayout.json
new file mode 100644
index 0000000..0f94aa2
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/CustomAdaptor_EntityFramework/v17/DocumentLayout.json
@@ -0,0 +1,117 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and customadaptor\\customadaptor_entityframework\\customadaptor_entityframework\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
+ "RelativeMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|solutionrelative:customadaptor_entityframework\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and customadaptor\\customadaptor_entityframework\\customadaptor_entityframework\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|solutionrelative:customadaptor_entityframework\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and customadaptor\\customadaptor_entityframework\\customadaptor_entityframework\\wwwroot\\js\\customadaptor.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
+ "RelativeMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|solutionrelative:customadaptor_entityframework\\wwwroot\\js\\customadaptor.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and customadaptor\\customadaptor_entityframework\\customadaptor_entityframework\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
+ "RelativeMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|solutionrelative:customadaptor_entityframework\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and customadaptor\\customadaptor_entityframework\\customadaptor_entityframework\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|solutionrelative:customadaptor_entityframework\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and customadaptor\\customadaptor_entityframework\\customadaptor_entityframework\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+ "RelativeMoniker": "D:0:0:{342696F3-2F20-4BE2-8D56-133AD6B47CE3}|CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework.csproj|solutionrelative:customadaptor_entityframework\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "index.js",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\wwwroot\\js\\index.js",
+ "RelativeDocumentMoniker": "CustomAdaptor_EntityFramework\\wwwroot\\js\\index.js",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\wwwroot\\js\\index.js",
+ "RelativeToolTip": "CustomAdaptor_EntityFramework\\wwwroot\\js\\index.js",
+ "ViewState": "AgIAABUAAAAAAAAAAAAAAB0AAAAPAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
+ "WhenOpened": "2025-04-03T08:35:43.239Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "CustomAdaptor.js",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\wwwroot\\js\\CustomAdaptor.js",
+ "RelativeDocumentMoniker": "CustomAdaptor_EntityFramework\\wwwroot\\js\\CustomAdaptor.js",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\wwwroot\\js\\CustomAdaptor.js",
+ "RelativeToolTip": "CustomAdaptor_EntityFramework\\wwwroot\\js\\CustomAdaptor.js",
+ "ViewState": "AgIAACwAAAAAAAAAAAAAwDsAAAABAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
+ "WhenOpened": "2025-04-03T08:35:26.199Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "Program.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\Program.cs",
+ "RelativeDocumentMoniker": "CustomAdaptor_EntityFramework\\Program.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\Program.cs",
+ "RelativeToolTip": "CustomAdaptor_EntityFramework\\Program.cs",
+ "ViewState": "AgIAAAIAAAAAAAAAAAAcwBIAAAAVAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-03T08:33:59.041Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "index.html",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\wwwroot\\index.html",
+ "RelativeDocumentMoniker": "CustomAdaptor_EntityFramework\\wwwroot\\index.html",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\wwwroot\\index.html",
+ "RelativeToolTip": "CustomAdaptor_EntityFramework\\wwwroot\\index.html",
+ "ViewState": "AgIAAA0AAAAAAAAAAAAowBcAAAAGAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
+ "WhenOpened": "2025-04-03T08:33:45.28Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 5,
+ "Title": "launchSettings.json",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\Properties\\launchSettings.json",
+ "RelativeDocumentMoniker": "CustomAdaptor_EntityFramework\\Properties\\launchSettings.json",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\Properties\\launchSettings.json",
+ "RelativeToolTip": "CustomAdaptor_EntityFramework\\Properties\\launchSettings.json",
+ "ViewState": "AgIAAA8AAAAAAAAAAAAYwBkAAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+ "WhenOpened": "2025-04-03T08:33:22.99Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "GridController.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\Controllers\\GridController.cs",
+ "RelativeDocumentMoniker": "CustomAdaptor_EntityFramework\\Controllers\\GridController.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and CustomAdaptor\\CustomAdaptor_EntityFramework\\CustomAdaptor_EntityFramework\\Controllers\\GridController.cs",
+ "RelativeToolTip": "CustomAdaptor_EntityFramework\\Controllers\\GridController.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAABFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-03T08:31:54.599Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/ProjectEvaluation/customadaptor_entityframework.metadata.v9.bin b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/ProjectEvaluation/customadaptor_entityframework.metadata.v9.bin
new file mode 100644
index 0000000..182f8a2
Binary files /dev/null and b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/ProjectEvaluation/customadaptor_entityframework.metadata.v9.bin differ
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/ProjectEvaluation/customadaptor_entityframework.projects.v9.bin b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/ProjectEvaluation/customadaptor_entityframework.projects.v9.bin
new file mode 100644
index 0000000..a97a594
Binary files /dev/null and b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/ProjectEvaluation/customadaptor_entityframework.projects.v9.bin differ
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/ProjectEvaluation/customadaptor_entityframework.strings.v9.bin b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/ProjectEvaluation/customadaptor_entityframework.strings.v9.bin
new file mode 100644
index 0000000..a00bf28
Binary files /dev/null and b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/.vs/ProjectEvaluation/customadaptor_entityframework.strings.v9.bin differ
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework.sln b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework.sln
new file mode 100644
index 0000000..56c03d4
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework.sln
@@ -0,0 +1,24 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.13.35818.85
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomAdaptor_EntityFramework", "CustomAdaptor_EntityFramework\CustomAdaptor_EntityFramework.csproj", "{342696F3-2F20-4BE2-8D56-133AD6B47CE3}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {342696F3-2F20-4BE2-8D56-133AD6B47CE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {342696F3-2F20-4BE2-8D56-133AD6B47CE3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {342696F3-2F20-4BE2-8D56-133AD6B47CE3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {342696F3-2F20-4BE2-8D56-133AD6B47CE3}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {8A59FFAE-EEBB-4633-AD4E-570E8B644ECF}
+ EndGlobalSection
+EndGlobal
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/App_Data/NORTHWIND.MDF b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/App_Data/NORTHWIND.MDF
new file mode 100644
index 0000000..652e635
Binary files /dev/null and b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/App_Data/NORTHWIND.MDF differ
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/App_Data/NORTHWIND_log.ldf b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/App_Data/NORTHWIND_log.ldf
new file mode 100644
index 0000000..aa8da75
Binary files /dev/null and b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/App_Data/NORTHWIND_log.ldf differ
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/Controllers/GridController.cs b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/Controllers/GridController.cs
new file mode 100644
index 0000000..377c39d
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/Controllers/GridController.cs
@@ -0,0 +1,262 @@
+using Microsoft.AspNetCore.Mvc;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Data;
+using Syncfusion.EJ2.Base;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata.Internal;
+
+namespace CustomAdaptor_EntityFramework.Server.Controllers
+{
+ [ApiController]
+ public class GridController : ControllerBase
+ {
+ string ConnectionString = @"";
+
+ ///
+ /// Processes the DataManager request to perform searching, filtering, sorting, and paging operations.
+ ///
+ /// Contains the details of the data operation requested.
+ /// Returns a JSON object with the filtered, sorted, and paginated data along with the total record count.
+ [HttpPost]
+ [Route("api/[controller]")]
+ public object Post([FromBody] DataManagerRequest DataManagerRequest)
+ {
+ // Retrieve data from the data source (e.g., database).
+ IQueryable DataSource = GetOrderData().AsQueryable();
+
+ // Initialize QueryableOperation instance.
+ QueryableOperation queryableOperation = new QueryableOperation();
+
+ // Handling searching operation.
+ if (DataManagerRequest.Search != null && DataManagerRequest.Search.Count > 0)
+ {
+ DataSource = queryableOperation.PerformSearching(DataSource, DataManagerRequest.Search);
+ // Add custom logic here if needed and remove above method.
+ }
+
+ // Handling filtering operation.
+ if (DataManagerRequest.Where != null && DataManagerRequest.Where.Count > 0)
+ {
+ foreach (WhereFilter condition in DataManagerRequest.Where)
+ {
+ foreach (WhereFilter predicate in condition.predicates)
+ {
+ DataSource = queryableOperation.PerformFiltering(DataSource, DataManagerRequest.Where, predicate.Operator);
+ // Add custom logic here if needed and remove above method.
+ }
+ }
+ }
+
+ // Handling sorting operation.
+ if (DataManagerRequest.Sorted != null && DataManagerRequest.Sorted.Count > 0)
+ {
+ DataSource = queryableOperation.PerformSorting(DataSource, DataManagerRequest.Sorted);
+ // Add custom logic here if needed and remove above method.
+ }
+
+ // Get the total count of records.
+ int totalRecordsCount = DataSource.Count();
+
+ // Handling paging operation.
+ if (DataManagerRequest.Skip != 0)
+ {
+ DataSource = queryableOperation.PerformSkip(DataSource, DataManagerRequest.Skip);
+ // Add custom logic here if needed and remove above method.
+ }
+ if (DataManagerRequest.Take != 0)
+ {
+ DataSource = queryableOperation.PerformTake(DataSource, DataManagerRequest.Take);
+ // Add custom logic here if needed and remove above method.
+ }
+
+ // Return data based on the request.
+ return new { result = DataSource, count = totalRecordsCount };
+ }
+
+ ///
+ /// Retrieves the order data from the database.
+ ///
+ /// Returns a list of orders fetched from the database.
+ [HttpGet]
+ [Route("api/[controller]")]
+ public List GetOrderData()
+ {
+ using (OrderDbContext Context = new OrderDbContext(ConnectionString))
+ {
+ // Retrieve orders from the orders DbSet and convert to list asynchronously.
+ List orders = Context.Orders.ToList();
+ return orders;
+ }
+ }
+
+ // Create a class that inherits from DbContext(Entity Framework Core).
+ public class OrderDbContext : DbContext
+ {
+ // Declare a private variable to store the connection string.
+ private readonly string _ConnectionString;
+
+ // Define a constructor that accepts a connection string.
+ public OrderDbContext(string ConnectionString)
+ {
+ // Store the provided connection string.
+ _ConnectionString = ConnectionString;
+ }
+
+ // Override the Onconfiguring method to tell EF Core to use SQL server.
+ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
+ {
+ // Use the connection string to configure the database connection.
+ optionsBuilder.UseSqlServer(_ConnectionString);
+ }
+
+ // Define a DbSet to represent the orders table in the database.
+ public DbSet Orders { get; set; }
+ }
+
+ ///
+ /// Inserts a new data item into the data collection.
+ ///
+ /// It contains the new record detail which is need to be inserted.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/Insert")]
+ public void Insert([FromBody] CRUDModel value)
+ {
+ using (OrderDbContext Context = new OrderDbContext(ConnectionString))
+ {
+ // Add the provided order to the orders DbSet.
+ Context.Orders.Add(value.value);
+
+ // Save changes to the database.
+ Context.SaveChanges();
+ }
+
+ // Add custom logic here if needed and remove above method.
+ }
+
+ ///
+ /// Update a existing data item from the data collection.
+ ///
+ /// It contains the updated record detail which is need to be updated.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/Update")]
+ public void Update([FromBody] CRUDModel value)
+ {
+ using (OrderDbContext Context = new OrderDbContext(ConnectionString))
+ {
+ Orders existingOrder = Context.Orders.Find(value.value.OrderID);
+ if (existingOrder != null)
+ {
+ // Update the existing order with the new values.
+ Context.Entry(existingOrder).CurrentValues.SetValues(value.value);
+
+ // Save changes to the database.
+ Context.SaveChanges();
+ }
+ }
+
+ // Add custom logic here if needed and remove above method.
+ }
+
+ ///
+ /// Remove a specific data item from the data collection.
+ ///
+ /// It contains the specific record detail which is need to be removed.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/Remove")]
+ public void Remove([FromBody] CRUDModel value)
+ {
+ int OrderId = Convert.ToInt32(value.key.ToString());
+ using (OrderDbContext Context = new OrderDbContext(ConnectionString))
+ {
+ Orders Order = Context.Orders.Find(OrderId);
+ if (Order != null)
+ {
+ // Remove the order from the orders DbSet.
+ Context.Orders.Remove(Order);
+
+ // Save changes to the database.
+ Context.SaveChanges();
+ }
+ }
+
+ // Add custom logic here if needed and remove above method.
+ }
+
+ ///
+ /// Batch update (Insert, Update, and Delete) a collection of data items from the data collection.
+ ///
+ /// The set of information along with details about the CRUD actions to be executed from the database.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/BatchUpdate")]
+ public IActionResult BatchUpdate([FromBody] CRUDModel value)
+ {
+ using (OrderDbContext Context = new OrderDbContext(ConnectionString))
+ {
+ if (value.changed != null && value.changed.Count > 0)
+ {
+ foreach (Orders Record in (IEnumerable)value.changed)
+ {
+ // Update the changed records.
+ Context.Orders.UpdateRange(Record);
+ }
+ }
+
+ if (value.added != null && value.added.Count > 0)
+ {
+ foreach (Orders Record in (IEnumerable)value.added)
+ {
+ foreach (Orders order in value.added)
+ {
+ // This ensures EF does not try to insert OrderID.
+ order.OrderID = default;
+ }
+ // Add new records.
+ Context.Orders.AddRange(value.added);
+ }
+ }
+
+ if (value.deleted != null && value.deleted.Count > 0)
+ {
+ foreach (Orders Record in (IEnumerable)value.deleted)
+ {
+ // Find and delete the records.
+ Orders ExistingOrder = Context.Orders.Find(Record.OrderID);
+ if (ExistingOrder != null)
+ {
+ Context.Orders.Remove(ExistingOrder);
+ }
+ }
+ }
+
+ // Save changes to the database.
+ Context.SaveChanges();
+ }
+ return new JsonResult(value);
+ }
+ public class CRUDModel where T : class
+ {
+ public string? action { get; set; }
+ public string? keyColumn { get; set; }
+ public object? key { get; set; }
+ public T? value { get; set; }
+ public List? added { get; set; }
+ public List? changed { get; set; }
+ public List? deleted { get; set; }
+ public IDictionary? @params { get; set; }
+ }
+ public class Orders
+ {
+ [Key]
+ public int? OrderID { get; set; }
+ public string? CustomerID { get; set; }
+ public int? EmployeeID { get; set; }
+ public decimal Freight { get; set; }
+ public string? ShipCity { get; set; }
+ }
+ }
+}
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/Controllers/WeatherForecastController.cs b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/Controllers/WeatherForecastController.cs
new file mode 100644
index 0000000..f09f1f3
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/Controllers/WeatherForecastController.cs
@@ -0,0 +1,32 @@
+using Microsoft.AspNetCore.Mvc;
+
+namespace CustomAdaptor_EntityFramework.Controllers;
+
+[ApiController]
+[Route("[controller]")]
+public class WeatherForecastController : ControllerBase
+{
+ private static readonly string[] Summaries = new[]
+ {
+ "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
+ };
+
+ private readonly ILogger _logger;
+
+ public WeatherForecastController(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ [HttpGet(Name = "GetWeatherForecast")]
+ public IEnumerable Get()
+ {
+ return Enumerable.Range(1, 5).Select(index => new WeatherForecast
+ {
+ Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
+ TemperatureC = Random.Shared.Next(-20, 55),
+ Summary = Summaries[Random.Shared.Next(Summaries.Length)]
+ })
+ .ToArray();
+ }
+}
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework.csproj b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework.csproj
new file mode 100644
index 0000000..95381e6
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework.csproj
@@ -0,0 +1,17 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework.csproj.user b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework.csproj.user
new file mode 100644
index 0000000..9ff5820
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework.csproj.user
@@ -0,0 +1,6 @@
+
+
+
+ https
+
+
\ No newline at end of file
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework.http b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework.http
new file mode 100644
index 0000000..2459c33
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework.http
@@ -0,0 +1,6 @@
+@CustomAdaptor_EntityFramework_HostAddress = http://localhost:5114
+
+GET {{CustomAdaptor_EntityFramework_HostAddress}}/weatherforecast/
+Accept: application/json
+
+###
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/Program.cs b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/Program.cs
new file mode 100644
index 0000000..8841217
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/Program.cs
@@ -0,0 +1,26 @@
+var builder = WebApplication.CreateBuilder(args);
+
+// Add services to the container.
+
+builder.Services.AddControllers();
+// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
+builder.Services.AddEndpointsApiExplorer();
+builder.Services.AddSwaggerGen();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (app.Environment.IsDevelopment())
+{
+ app.UseSwagger();
+ app.UseSwaggerUI();
+}
+app.UseDefaultFiles();
+app.UseStaticFiles();
+app.UseHttpsRedirection();
+
+app.UseAuthorization();
+
+app.MapControllers();
+
+app.Run();
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/Properties/launchSettings.json b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/Properties/launchSettings.json
new file mode 100644
index 0000000..184e341
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/Properties/launchSettings.json
@@ -0,0 +1,41 @@
+{
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:46404",
+ "sslPort": 44316
+ }
+ },
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "applicationUrl": "http://localhost:5114",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ //"launchUrl": "swagger",
+ "applicationUrl": "https://localhost:7018;http://localhost:5114",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/WeatherForecast.cs b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/WeatherForecast.cs
new file mode 100644
index 0000000..3dc2748
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/WeatherForecast.cs
@@ -0,0 +1,13 @@
+namespace CustomAdaptor_EntityFramework
+{
+ public class WeatherForecast
+ {
+ public DateOnly Date { get; set; }
+
+ public int TemperatureC { get; set; }
+
+ public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
+
+ public string? Summary { get; set; }
+ }
+}
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/appsettings.Development.json b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/appsettings.Development.json
new file mode 100644
index 0000000..0c208ae
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/appsettings.json b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/appsettings.json
new file mode 100644
index 0000000..10f68b8
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/wwwroot/index.html b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/wwwroot/index.html
new file mode 100644
index 0000000..b7ccd88
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/wwwroot/index.html
@@ -0,0 +1,30 @@
+
+
+
+ EJ2 Grid
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/wwwroot/js/CustomAdaptor.js b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/wwwroot/js/CustomAdaptor.js
new file mode 100644
index 0000000..389f023
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/wwwroot/js/CustomAdaptor.js
@@ -0,0 +1,60 @@
+export class CustomAdaptor extends ej.data.UrlAdaptor {
+ processResponse() {
+ // Calling base class processResponse function.
+ const original = super.processResponse.apply(this, arguments);
+ return original;
+ }
+
+
+ insert(dm, data) {
+ return {
+ url: dm.dataSource.insertUrl || dm.dataSource.url,
+ data: JSON.stringify({
+ __RequestVerificationToken: "Syncfusion",
+ value: data,
+ action: 'insert'
+ }),
+ type: 'POST'
+ };
+ }
+
+ update(dm, keyField, value) {
+ return {
+ url: dm.dataSource.updateUrl || dm.dataSource.url,
+ data: JSON.stringify({
+ __RequestVerificationToken: "Syncfusion",
+ value: value,
+ action: 'update'
+ }),
+ type: 'POST'
+ };
+ }
+
+ remove(dm, keyField, value) {
+ return {
+ url: dm.dataSource.removeUrl || dm.dataSource.url,
+ data: JSON.stringify({
+ __RequestVerificationToken: "Syncfusion",
+ key: value,
+ keyColumn: keyField,
+ action: 'remove'
+ }),
+ type: 'POST'
+ };
+ }
+
+ batchRequest(dm, changes, e, query, original) {
+ return {
+ url: dm.dataSource.batchUrl || dm.dataSource.url,
+ data: JSON.stringify({
+ __RequestVerificationToken: "Syncfusion",
+ added: changes.addedRecords,
+ changed: changes.changedRecords,
+ deleted: changes.deletedRecords,
+ key: e.key,
+ action: 'batch'
+ }),
+ type: 'POST'
+ };
+ }
+}
\ No newline at end of file
diff --git a/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/wwwroot/js/index.js b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/wwwroot/js/index.js
new file mode 100644
index 0000000..b032f03
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/CustomAdaptor_EntityFramework/CustomAdaptor_EntityFramework/wwwroot/js/index.js
@@ -0,0 +1,32 @@
+import { CustomAdaptor } from './CustomAdaptor.js';
+
+ej.grids.Grid.Inject(ej.grids.Filter, ej.grids.Sort, ej.grids.Page, ej.grids.Edit, ej.grids.Toolbar);
+
+let data = new ej.data.DataManager({
+ url: 'https://localhost:xxxx/api/Grid',
+ insertUrl: 'https://localhost:xxxx/api/Grid/Insert',
+ updateUrl: 'https://localhost:xxxx/api/Grid/Update',
+ removeUrl: 'https://localhost:xxxx/api/Grid/Remove',
+ // Enable batch URL when batch editing is enabled.
+ //batchUrl: 'https://localhost:xxxx/api/Grid/BatchUpdate',
+ adaptor: new CustomAdaptor()
+});
+
+var grid = new ej.grids.Grid({
+ dataSource: data,
+ allowGrouping: true,
+ allowFiltering: true,
+ allowSorting: true,
+ allowPaging: true,
+ toolbar: ['Add', 'Edit', 'Delete', 'Update', 'Cancel', 'Search'],
+ editSettings: { allowEditing: true, allowAdding: true, allowDeleting: true },
+ columns: [
+ { field: 'OrderID', headerText: 'Order ID', textAlign: 'Right', width: 100, isPrimaryKey: true, isIdentity: true, type: 'number' },
+ { field: 'CustomerID', headerText: 'Customer ID', validationRules: { required: true }, type: 'string', width: 100 },
+ { field: 'EmployeeID', headerText: 'Employee ID', validationRules: { required: true, number: true }, width: 100 },
+ { field: 'Freight', headerText: 'Freight', validationRules: { required: true, min: 1, max: 1000 }, textAlign: 'Right', width: 100 },
+ { field: 'ShipCity', headerText: 'Ship City', validationRules: { required: true }, textAlign: 'Right', width: 120 }
+ ],
+ height: 348
+});
+grid.appendTo('#Grid');
\ No newline at end of file
diff --git a/Binding SQL database using EF and CustomAdaptor/README.md b/Binding SQL database using EF and CustomAdaptor/README.md
new file mode 100644
index 0000000..b525522
--- /dev/null
+++ b/Binding SQL database using EF and CustomAdaptor/README.md
@@ -0,0 +1,15 @@
+## JavaScript Grid SQL Server connectivity using Entity Framework and CustomAdaptor
+
+A project that enables data binding and CRUD action handling in the Syncfusion JavaScript Grid to a SQL Server using Entity Framework and CustomAdaptor feature of the Grid.
+
+## Steps to Run the Sample
+
+1. Download or unzip the project and open the project in **Visual Studio 2022**.
+
+2. Replace the connected database's connection string in the `GridController.cs` file.
+
+3. In the JavaScript client project, open `js/index.js` and replace the port number in the API URL where it says `xxxx` with the actual backend server port.
+
+4. Build the project to restore dependencies and compile it.
+
+5. Run the project.
\ No newline at end of file
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/DesignTimeBuild/.dtbcache.v2 b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/DesignTimeBuild/.dtbcache.v2
new file mode 100644
index 0000000..8e49659
Binary files /dev/null and b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/02b4eace-5f79-4020-8404-7bd992f687e6.vsidx b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/02b4eace-5f79-4020-8404-7bd992f687e6.vsidx
new file mode 100644
index 0000000..0b7303b
Binary files /dev/null and b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/02b4eace-5f79-4020-8404-7bd992f687e6.vsidx differ
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/3c9a648b-904a-4d38-b176-e385d4b46edd.vsidx b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/3c9a648b-904a-4d38-b176-e385d4b46edd.vsidx
new file mode 100644
index 0000000..09bed38
Binary files /dev/null and b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/3c9a648b-904a-4d38-b176-e385d4b46edd.vsidx differ
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/8e7cc8fa-b37f-4062-9091-21dbc454cfb4.vsidx b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/8e7cc8fa-b37f-4062-9091-21dbc454cfb4.vsidx
new file mode 100644
index 0000000..7027666
Binary files /dev/null and b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/8e7cc8fa-b37f-4062-9091-21dbc454cfb4.vsidx differ
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/9be1b735-2a4e-4719-9a2e-5f2138aeb6b0.vsidx b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/9be1b735-2a4e-4719-9a2e-5f2138aeb6b0.vsidx
new file mode 100644
index 0000000..42e34e1
Binary files /dev/null and b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/9be1b735-2a4e-4719-9a2e-5f2138aeb6b0.vsidx differ
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/b66b55e3-e237-4613-9294-85fc5f5822a4.vsidx b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/b66b55e3-e237-4613-9294-85fc5f5822a4.vsidx
new file mode 100644
index 0000000..f531d64
Binary files /dev/null and b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/FileContentIndex/b66b55e3-e237-4613-9294-85fc5f5822a4.vsidx differ
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/config/applicationhost.config b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/config/applicationhost.config
new file mode 100644
index 0000000..0d88f0d
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/config/applicationhost.config
@@ -0,0 +1,1016 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/v17/.futdcache.v2 b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/v17/.futdcache.v2
new file mode 100644
index 0000000..b2c8c20
Binary files /dev/null and b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/v17/.futdcache.v2 differ
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/v17/.suo b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/v17/.suo
new file mode 100644
index 0000000..1399495
Binary files /dev/null and b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/v17/.suo differ
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/v17/DocumentLayout.backup.json b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/v17/DocumentLayout.backup.json
new file mode 100644
index 0000000..747e03a
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/v17/DocumentLayout.backup.json
@@ -0,0 +1,102 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and urladaptor\\grid_entityframework\\grid_entityframework\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|solutionrelative:grid_entityframework\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and urladaptor\\grid_entityframework\\grid_entityframework\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
+ "RelativeMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|solutionrelative:grid_entityframework\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and urladaptor\\grid_entityframework\\grid_entityframework\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+ "RelativeMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|solutionrelative:grid_entityframework\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and urladaptor\\grid_entityframework\\grid_entityframework\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
+ "RelativeMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|solutionrelative:grid_entityframework\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and urladaptor\\grid_entityframework\\grid_entityframework\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|solutionrelative:grid_entityframework\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 2,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "index.js",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\wwwroot\\js\\index.js",
+ "RelativeDocumentMoniker": "Grid_EntityFramework\\wwwroot\\js\\index.js",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\wwwroot\\js\\index.js",
+ "RelativeToolTip": "Grid_EntityFramework\\wwwroot\\js\\index.js",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAABlAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
+ "WhenOpened": "2025-04-03T08:19:25.629Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "index.html",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\wwwroot\\index.html",
+ "RelativeDocumentMoniker": "Grid_EntityFramework\\wwwroot\\index.html",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\wwwroot\\index.html",
+ "RelativeToolTip": "Grid_EntityFramework\\wwwroot\\index.html",
+ "ViewState": "AgIAAAkAAAAAAAAAAADwvx0AAAAHAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
+ "WhenOpened": "2025-04-03T08:16:16.437Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "GridController.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\Controllers\\GridController.cs",
+ "RelativeDocumentMoniker": "Grid_EntityFramework\\Controllers\\GridController.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\Controllers\\GridController.cs",
+ "RelativeToolTip": "Grid_EntityFramework\\Controllers\\GridController.cs",
+ "ViewState": "AgIAAAEAAAAAAAAAAAAAAA0AAABFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-03T08:04:59.502Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "launchSettings.json",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\Properties\\launchSettings.json",
+ "RelativeDocumentMoniker": "Grid_EntityFramework\\Properties\\launchSettings.json",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\Properties\\launchSettings.json",
+ "RelativeToolTip": "Grid_EntityFramework\\Properties\\launchSettings.json",
+ "ViewState": "AgIAAAwAAAAAAAAAAAAAABkAAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+ "WhenOpened": "2025-04-03T08:04:25.457Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "Program.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\Program.cs",
+ "RelativeDocumentMoniker": "Grid_EntityFramework\\Program.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\Program.cs",
+ "RelativeToolTip": "Grid_EntityFramework\\Program.cs",
+ "ViewState": "AgIAAAUAAAAAAAAAAAAcwBEAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-03T08:03:50.124Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/v17/DocumentLayout.json b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/v17/DocumentLayout.json
new file mode 100644
index 0000000..5e1b968
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/Grid_EntityFramework/v17/DocumentLayout.json
@@ -0,0 +1,102 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and urladaptor\\grid_entityframework\\grid_entityframework\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}",
+ "RelativeMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|solutionrelative:grid_entityframework\\wwwroot\\js\\index.js||{14D17961-FE51-464D-9111-C4AF11D7D99A}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and urladaptor\\grid_entityframework\\grid_entityframework\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|solutionrelative:grid_entityframework\\controllers\\gridcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and urladaptor\\grid_entityframework\\grid_entityframework\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+ "RelativeMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|solutionrelative:grid_entityframework\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and urladaptor\\grid_entityframework\\grid_entityframework\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
+ "RelativeMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|solutionrelative:grid_entityframework\\wwwroot\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|d:\\component\\ej2\\js\\connecting-databases-javascript-grid\\binding sql database using ef and urladaptor\\grid_entityframework\\grid_entityframework\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{36C6B303-7A47-47EE-9D01-3A179574DEC2}|Grid_EntityFramework\\Grid_EntityFramework.csproj|solutionrelative:grid_entityframework\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "index.js",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\wwwroot\\js\\index.js",
+ "RelativeDocumentMoniker": "Grid_EntityFramework\\wwwroot\\js\\index.js",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\wwwroot\\js\\index.js",
+ "RelativeToolTip": "Grid_EntityFramework\\wwwroot\\js\\index.js",
+ "ViewState": "AgIAABIAAAAAAAAAAAAAABsAAAAPAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001646|",
+ "WhenOpened": "2025-04-03T08:19:25.629Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "index.html",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\wwwroot\\index.html",
+ "RelativeDocumentMoniker": "Grid_EntityFramework\\wwwroot\\index.html",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\wwwroot\\index.html",
+ "RelativeToolTip": "Grid_EntityFramework\\wwwroot\\index.html",
+ "ViewState": "AgIAAAkAAAAAAAAAAADwvx0AAAAHAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
+ "WhenOpened": "2025-04-03T08:16:16.437Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "GridController.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\Controllers\\GridController.cs",
+ "RelativeDocumentMoniker": "Grid_EntityFramework\\Controllers\\GridController.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\Controllers\\GridController.cs",
+ "RelativeToolTip": "Grid_EntityFramework\\Controllers\\GridController.cs",
+ "ViewState": "AgIAAAEAAAAAAAAAAAAAAA0AAABFAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-03T08:04:59.502Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "launchSettings.json",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\Properties\\launchSettings.json",
+ "RelativeDocumentMoniker": "Grid_EntityFramework\\Properties\\launchSettings.json",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\Properties\\launchSettings.json",
+ "RelativeToolTip": "Grid_EntityFramework\\Properties\\launchSettings.json",
+ "ViewState": "AgIAAAwAAAAAAAAAAAAAABkAAAAIAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+ "WhenOpened": "2025-04-03T08:04:25.457Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "Program.cs",
+ "DocumentMoniker": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\Program.cs",
+ "RelativeDocumentMoniker": "Grid_EntityFramework\\Program.cs",
+ "ToolTip": "D:\\Component\\EJ2\\JS\\connecting-databases-javascript-grid\\Binding SQL database using EF and UrlAdaptor\\Grid_EntityFramework\\Grid_EntityFramework\\Program.cs",
+ "RelativeToolTip": "Grid_EntityFramework\\Program.cs",
+ "ViewState": "AgIAAAUAAAAAAAAAAAAcwBEAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-04-03T08:03:50.124Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/ProjectEvaluation/grid_entityframework.metadata.v9.bin b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/ProjectEvaluation/grid_entityframework.metadata.v9.bin
new file mode 100644
index 0000000..f8310d4
Binary files /dev/null and b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/ProjectEvaluation/grid_entityframework.metadata.v9.bin differ
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/ProjectEvaluation/grid_entityframework.projects.v9.bin b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/ProjectEvaluation/grid_entityframework.projects.v9.bin
new file mode 100644
index 0000000..4ee0ca4
Binary files /dev/null and b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/ProjectEvaluation/grid_entityframework.projects.v9.bin differ
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/ProjectEvaluation/grid_entityframework.strings.v9.bin b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/ProjectEvaluation/grid_entityframework.strings.v9.bin
new file mode 100644
index 0000000..de095e0
Binary files /dev/null and b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/.vs/ProjectEvaluation/grid_entityframework.strings.v9.bin differ
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework.sln b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework.sln
new file mode 100644
index 0000000..9051e5f
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework.sln
@@ -0,0 +1,24 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.13.35818.85
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Grid_EntityFramework", "Grid_EntityFramework\Grid_EntityFramework.csproj", "{36C6B303-7A47-47EE-9D01-3A179574DEC2}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {36C6B303-7A47-47EE-9D01-3A179574DEC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {36C6B303-7A47-47EE-9D01-3A179574DEC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {36C6B303-7A47-47EE-9D01-3A179574DEC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {36C6B303-7A47-47EE-9D01-3A179574DEC2}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {BCC1C6E6-E805-4D83-8BAC-444DE4EAC6ED}
+ EndGlobalSection
+EndGlobal
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/App_Data/NORTHWIND.MDF b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/App_Data/NORTHWIND.MDF
new file mode 100644
index 0000000..c4220de
Binary files /dev/null and b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/App_Data/NORTHWIND.MDF differ
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/App_Data/NORTHWIND_log.ldf b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/App_Data/NORTHWIND_log.ldf
new file mode 100644
index 0000000..5a06cd4
Binary files /dev/null and b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/App_Data/NORTHWIND_log.ldf differ
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Controllers/GridController.cs b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Controllers/GridController.cs
new file mode 100644
index 0000000..4b5da73
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Controllers/GridController.cs
@@ -0,0 +1,264 @@
+using Microsoft.AspNetCore.Mvc;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Data;
+using Syncfusion.EJ2.Base;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata.Internal;
+
+namespace Grid_EntityFramework.Server.Controllers
+{
+ [ApiController]
+ public class GridController : ControllerBase
+ {
+ string ConnectionString = @"";
+
+ ///
+ /// Processes the DataManager request to perform searching, filtering, sorting, and paging operations.
+ ///
+ /// Contains the details of the data operation requested.
+ /// Returns a JSON object with the filtered, sorted, and paginated data along with the total record count.
+ [HttpPost]
+ [Route("api/[controller]")]
+ public object Post([FromBody] DataManagerRequest DataManagerRequest)
+ {
+ // Retrieve data from the data source (e.g., database).
+ IQueryable DataSource = GetOrderData().AsQueryable();
+
+ // Initialize QueryableOperation instance.
+ QueryableOperation queryableOperation = new QueryableOperation();
+
+ // Handling searching operation.
+ if (DataManagerRequest.Search != null && DataManagerRequest.Search.Count > 0)
+ {
+ DataSource = queryableOperation.PerformSearching(DataSource, DataManagerRequest.Search);
+ // Add custom logic here if needed and remove above method.
+ }
+
+ // Handling filtering operation.
+ if (DataManagerRequest.Where != null && DataManagerRequest.Where.Count > 0)
+ {
+ foreach (WhereFilter condition in DataManagerRequest.Where)
+ {
+ foreach (WhereFilter predicate in condition.predicates)
+ {
+ DataSource = queryableOperation.PerformFiltering(DataSource, DataManagerRequest.Where, predicate.Operator);
+ // Add custom logic here if needed and remove above method.
+ }
+ }
+ }
+
+ // Handling sorting operation.
+ if (DataManagerRequest.Sorted != null && DataManagerRequest.Sorted.Count > 0)
+ {
+ DataSource = queryableOperation.PerformSorting(DataSource, DataManagerRequest.Sorted);
+ // Add custom logic here if needed and remove above method.
+ }
+
+ // Get the total count of records.
+ int totalRecordsCount = DataSource.Count();
+
+ // Handling paging operation.
+ if (DataManagerRequest.Skip != 0)
+ {
+ DataSource = queryableOperation.PerformSkip(DataSource, DataManagerRequest.Skip);
+ // Add custom logic here if needed and remove above method.
+ }
+ if (DataManagerRequest.Take != 0)
+ {
+ DataSource = queryableOperation.PerformTake(DataSource, DataManagerRequest.Take);
+ // Add custom logic here if needed and remove above method.
+ }
+
+ // Return data based on the request.
+ return new { result = DataSource, count = totalRecordsCount };
+ }
+
+ ///
+ /// Retrieves the order data from the database.
+ ///
+ /// Returns a list of orders fetched from the database.
+ [HttpGet]
+ [Route("api/[controller]")]
+ public List GetOrderData()
+ {
+ using (OrderDbContext Context = new OrderDbContext(ConnectionString))
+ {
+ // Retrieve orders from the orders DbSet and convert to list asynchronously.
+ List orders = Context.Orders.ToList();
+ return orders;
+ }
+ }
+
+ // Create a class that inherits from DbContext(Entity Framework Core).
+ public class OrderDbContext : DbContext
+ {
+ // Declare a private variable to store the connection string.
+ private readonly string _ConnectionString;
+
+ // Define a constructor that accepts a connection string.
+ public OrderDbContext(string ConnectionString)
+ {
+ // Store the provided connection string.
+ _ConnectionString = ConnectionString;
+ }
+
+ // Override the Onconfiguring method to tell EF Core to use SQL server.
+ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
+ {
+ // Use the connection string to configure the database connection.
+ optionsBuilder.UseSqlServer(_ConnectionString);
+ }
+
+ // Define a DbSet to represent the orders table in the database.
+ public DbSet Orders { get; set; }
+ }
+
+ ///
+ /// Inserts a new data item into the data collection.
+ ///
+ /// It contains the new record detail which is need to be inserted.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/Insert")]
+ public void Insert([FromBody] CRUDModel value)
+ {
+ using (OrderDbContext Context = new OrderDbContext(ConnectionString))
+ {
+ // Add the provided order to the orders DbSet.
+ Context.Orders.Add(value.value);
+
+ // Save changes to the database.
+ Context.SaveChanges();
+ }
+
+ // Add custom logic here if needed and remove above method.
+ }
+
+ ///
+ /// Update a existing data item from the data collection.
+ ///
+ /// It contains the updated record detail which is need to be updated.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/Update")]
+ public void Update([FromBody] CRUDModel value)
+ {
+ using (OrderDbContext Context = new OrderDbContext(ConnectionString))
+ {
+ Orders existingOrder = Context.Orders.Find(value.value.OrderID);
+ if (existingOrder != null)
+ {
+ // Update the existing order with the new values.
+ Context.Entry(existingOrder).CurrentValues.SetValues(value.value);
+
+ // Save changes to the database.
+ Context.SaveChanges();
+ }
+ }
+
+ // Add custom logic here if needed and remove above method.
+ }
+
+ ///
+ /// Remove a specific data item from the data collection.
+ ///
+ /// It contains the specific record detail which is need to be removed.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/Remove")]
+ public void Remove([FromBody] CRUDModel value)
+ {
+ int OrderId = Convert.ToInt32(value.key.ToString());
+ using (OrderDbContext Context = new OrderDbContext(ConnectionString))
+ {
+ Orders Order = Context.Orders.Find(OrderId);
+ if (Order != null)
+ {
+ // Remove the order from the orders DbSet.
+ Context.Orders.Remove(Order);
+
+ // Save changes to the database.
+ Context.SaveChanges();
+ }
+ }
+
+ // Add custom logic here if needed and remove above method.
+ }
+
+ ///
+ /// Batch update (Insert, Update, and Delete) a collection of data items from the data collection.
+ ///
+ /// The set of information along with details about the CRUD actions to be executed from the database.
+ /// Returns void.
+ [HttpPost]
+ [Route("api/[controller]/BatchUpdate")]
+ public IActionResult BatchUpdate([FromBody] CRUDModel value)
+ {
+ using (OrderDbContext Context = new OrderDbContext(ConnectionString))
+ {
+ if (value.changed != null && value.changed.Count > 0)
+ {
+ foreach (Orders Record in (IEnumerable)value.changed)
+ {
+ // Update the changed records.
+ Context.Orders.UpdateRange(Record);
+ }
+ }
+
+ if (value.added != null && value.added.Count > 0)
+ {
+ foreach (Orders Record in (IEnumerable)value.added)
+ {
+ foreach (Orders order in value.added)
+ {
+ // This ensures EF does not try to insert OrderID.
+ order.OrderID = default;
+ }
+ // Add new records.
+ Context.Orders.AddRange(value.added);
+ }
+ }
+
+ if (value.deleted != null && value.deleted.Count > 0)
+ {
+ foreach (Orders Record in (IEnumerable)value.deleted)
+ {
+ // Find and delete the records.
+ Orders ExistingOrder = Context.Orders.Find(Record.OrderID);
+ if (ExistingOrder != null)
+ {
+ Context.Orders.Remove(ExistingOrder);
+ }
+ }
+ }
+
+ // Save changes to the database.
+ Context.SaveChanges();
+ }
+ return new JsonResult(value);
+ }
+
+ public class CRUDModel where T : class
+ {
+ public string? action { get; set; }
+ public string? keyColumn { get; set; }
+ public object? key { get; set; }
+ public T? value { get; set; }
+ public List? added { get; set; }
+ public List? changed { get; set; }
+ public List? deleted { get; set; }
+ public IDictionary? @params { get; set; }
+ }
+
+ public class Orders
+ {
+ [Key]
+ public int? OrderID { get; set; }
+ public string? CustomerID { get; set; }
+ public int? EmployeeID { get; set; }
+ public decimal Freight { get; set; }
+ public string? ShipCity { get; set; }
+ }
+ }
+}
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Controllers/WeatherForecastController.cs b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Controllers/WeatherForecastController.cs
new file mode 100644
index 0000000..9a05768
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Controllers/WeatherForecastController.cs
@@ -0,0 +1,32 @@
+using Microsoft.AspNetCore.Mvc;
+
+namespace Grid_EntityFramework.Controllers;
+
+[ApiController]
+[Route("[controller]")]
+public class WeatherForecastController : ControllerBase
+{
+ private static readonly string[] Summaries = new[]
+ {
+ "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
+ };
+
+ private readonly ILogger _logger;
+
+ public WeatherForecastController(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ [HttpGet(Name = "GetWeatherForecast")]
+ public IEnumerable Get()
+ {
+ return Enumerable.Range(1, 5).Select(index => new WeatherForecast
+ {
+ Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
+ TemperatureC = Random.Shared.Next(-20, 55),
+ Summary = Summaries[Random.Shared.Next(Summaries.Length)]
+ })
+ .ToArray();
+ }
+}
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Grid_EntityFramework.csproj b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Grid_EntityFramework.csproj
new file mode 100644
index 0000000..95381e6
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Grid_EntityFramework.csproj
@@ -0,0 +1,17 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Grid_EntityFramework.csproj.user b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Grid_EntityFramework.csproj.user
new file mode 100644
index 0000000..9ff5820
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Grid_EntityFramework.csproj.user
@@ -0,0 +1,6 @@
+
+
+
+ https
+
+
\ No newline at end of file
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Grid_EntityFramework.http b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Grid_EntityFramework.http
new file mode 100644
index 0000000..5784bc9
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Grid_EntityFramework.http
@@ -0,0 +1,6 @@
+@Grid_EntityFramework_HostAddress = http://localhost:5137
+
+GET {{Grid_EntityFramework_HostAddress}}/weatherforecast/
+Accept: application/json
+
+###
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Program.cs b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Program.cs
new file mode 100644
index 0000000..8841217
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Program.cs
@@ -0,0 +1,26 @@
+var builder = WebApplication.CreateBuilder(args);
+
+// Add services to the container.
+
+builder.Services.AddControllers();
+// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
+builder.Services.AddEndpointsApiExplorer();
+builder.Services.AddSwaggerGen();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (app.Environment.IsDevelopment())
+{
+ app.UseSwagger();
+ app.UseSwaggerUI();
+}
+app.UseDefaultFiles();
+app.UseStaticFiles();
+app.UseHttpsRedirection();
+
+app.UseAuthorization();
+
+app.MapControllers();
+
+app.Run();
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Properties/launchSettings.json b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Properties/launchSettings.json
new file mode 100644
index 0000000..7242ae2
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/Properties/launchSettings.json
@@ -0,0 +1,41 @@
+{
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:2062",
+ "sslPort": 44360
+ }
+ },
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "applicationUrl": "http://localhost:5137",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ //"launchUrl": "swagger",
+ "applicationUrl": "https://localhost:7238;http://localhost:5137",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/WeatherForecast.cs b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/WeatherForecast.cs
new file mode 100644
index 0000000..11fd463
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/WeatherForecast.cs
@@ -0,0 +1,13 @@
+namespace Grid_EntityFramework
+{
+ public class WeatherForecast
+ {
+ public DateOnly Date { get; set; }
+
+ public int TemperatureC { get; set; }
+
+ public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
+
+ public string? Summary { get; set; }
+ }
+}
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/appsettings.Development.json b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/appsettings.Development.json
new file mode 100644
index 0000000..0c208ae
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/appsettings.json b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/appsettings.json
new file mode 100644
index 0000000..10f68b8
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/wwwroot/index.html b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/wwwroot/index.html
new file mode 100644
index 0000000..b7ccd88
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/wwwroot/index.html
@@ -0,0 +1,30 @@
+
+
+
+ EJ2 Grid
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/wwwroot/js/index.js b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/wwwroot/js/index.js
new file mode 100644
index 0000000..3d9ab57
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/Grid_EntityFramework/Grid_EntityFramework/wwwroot/js/index.js
@@ -0,0 +1,30 @@
+ej.grids.Grid.Inject(ej.grids.Filter, ej.grids.Sort, ej.grids.Page, ej.grids.Edit, ej.grids.Toolbar);
+
+let data = new ej.data.DataManager({
+ url: 'https://localhost:xxxx/api/Grid',
+ insertUrl: 'https://localhost:xxxx/api/Grid/Insert',
+ updateUrl: 'https://localhost:xxxx/api/Grid/Update',
+ removeUrl: 'https://localhost:xxxx/api/Grid/Remove',
+ // Enable batch URL when batch editing is enabled.
+ //batchUrl: 'https://localhost:xxxx/api/Grid/BatchUpdate',
+ adaptor: new ej.data.UrlAdaptor()
+});
+
+var grid = new ej.grids.Grid({
+ dataSource: data,
+ allowGrouping: true,
+ allowFiltering: true,
+ allowSorting: true,
+ allowPaging: true,
+ toolbar: ['Add', 'Edit', 'Delete', 'Update', 'Cancel', 'Search'],
+ editSettings: { allowEditing: true, allowAdding: true, allowDeleting: true },
+ columns: [
+ { field: 'OrderID', headerText: 'Order ID', textAlign: 'Right', width: 100, isPrimaryKey: true, isIdentity: true, type: 'number' },
+ { field: 'CustomerID', headerText: 'Customer ID', validationRules: { required: true }, type: 'string', width: 100 },
+ { field: 'EmployeeID', headerText: 'Employee ID', validationRules: { required: true, number: true }, width: 100 },
+ { field: 'Freight', headerText: 'Freight', validationRules: { required: true, min: 1, max: 1000 }, textAlign: 'Right', width: 100 },
+ { field: 'ShipCity', headerText: 'Ship City', validationRules: { required: true }, textAlign: 'Right', width: 120 }
+ ],
+ height: 348
+});
+grid.appendTo('#Grid');
\ No newline at end of file
diff --git a/Binding SQL database using EF and UrlAdaptor/README.md b/Binding SQL database using EF and UrlAdaptor/README.md
new file mode 100644
index 0000000..d6ac9cc
--- /dev/null
+++ b/Binding SQL database using EF and UrlAdaptor/README.md
@@ -0,0 +1,15 @@
+## JavaScript Grid SQL Server connectivity using Entity Framework and UrlAdaptor
+
+A project that enables data binding and CRUD action handling in the Syncfusion JavaScript Grid to a SQL Server using Entity Framework and UrlAdaptor feature of the Grid.
+
+## Steps to Run the Sample
+
+1. Download or unzip the project and open the project in **Visual Studio 2022**.
+
+2. Replace the connected database's connection string in the `GridController.cs` file.
+
+3. In the JavaScript client project, open `js/index.js` and replace the port number in the API URL where it says `xxxx` with the actual backend server port.
+
+4. Build the project to restore dependencies and compile it.
+
+5. Run the project.
\ No newline at end of file