Linq-asp.net

提供:Dev Guides
移動先:案内検索

LINQ-ASP.Net

NETフレームワークの拡張セットとして、LINQはASP.NET開発者によるデータアクセスの推奨メカニズムです。 ASP.NET 3.5には、LINQをASP.NETで簡単に使用できるようにするLINQDataSourceコントロールが組み込まれています。 ASP.NETは、上記のコントロールをデータソースとして使用します。 現実のプロジェクトは主にWebサイトまたはWindowsアプリケーションを含むため、ASP.NETでのLINQの概念をよりよく理解するために、LINQ機能を利用するASP.NET Webサイトの作成から始めましょう。.

このためには、システムにVisual Studioと.NETフレームワークをインストールすることが不可欠です。 Visual Studioを開いたら、ファイル→新規→Webサイトに移動します。 下の図に示すように、ポップアップウィンドウが開きます。

LINQ-ASP.Net

次に、左側のテンプレートの下に、Webサイトを作成するための2つの言語オプションがあります。 * Visual C#を選択し、 *ASP.NET Empty Web Site を選択します。

システム上の新しいWebサイトを保存するフォルダーを選択します。 OK を押すと、すぐに Solution Explorer がすべてのWebファイルを含む画面に表示されます。 ソリューションエクスプローラーでDefault.aspxを右クリックし、ブラウザーで表示を選択して、ブラウザーでデフォルトのASP.NET Webサイトを表示します。 次のスクリーンショットに示すように、すぐに新しいASP.NET WebサイトがWebブラウザーで開きます。

LINQ-ASP.Net

LINQDataSourceコントロール

aspx is in fact the major file extension used in ASP.NET websites. Visual Studio by default creates all the necessary pages for a basic website like Home page *and About Us* page where you can place your content conveniently. The code for the website is generated automatically here and can be viewed too..

LINQDataSourceコントロールを使用して、ASP.NET Webサイトのページのデータを*更新、挿入*および*削除*することができます。 LINQDataSourceコントロールはそのような操作のために動的に作成されたコマンドを使用するため、SQLコマンドを指定する必要はまったくありません。

このコントロールにより、ユーザーはマークアップテキストのプロパティ設定により、ASP.NET WebページでLINQを便利に使用できます。 LINQDataSourceは、 SqlDataSourceObjectDataSource などのコントロールと非常によく似ています。ページにある他のASP.NETコントロールをデータソースにバインドする際に使用できます。 そのため、LINQDataSourceコントロールによって呼び出されるさまざまな機能を説明するための*データベース*が必要です。

ASP.NET Webページフォームでのコントロールの使用法の説明を始める前に、Microsoft Visual Studioツールボックスを開き、下図のようにASP.NET Webサイトの.aspxページにLINQDataSourceコントロールをドラッグアンドドロップすることが不可欠です。

LINQ-ASP.Net

次の手順では、従業員レコードのすべての列を選択して、LINQDataSourceを構成します。

LINQ-ASP.Net

次に、GridViewコントロールを.aspxページに追加し、次の図に示すように構成します。 GridViewコントロールは強力で、データを操作する柔軟性を提供します。 コントロールを設定するとすぐに、ブラウザに表示されます。

LINQ-ASP.Net

aspxページの画面に表示できるコーディングは次のようになります-.

<!DOCTYPE html>

<html>
   <head runat = "server">
      <title></title>
   </head>

   <body>
      <form id = "form1" runat = "server">
         <div>
            <asp:GridView ID = "GridView1" runat = "server" AutoGenerateColumns = "False"

               DataKeyNames = "ContactID" DataSourceID = "LINQDataSource1">
               <Columns>

                  <asp:BoundField DataField = "ContactID" HeaderText = "ContactID"
                     InsertVisible = "False" ReadOnly="True" SortExpression = "ContactID"/>
                  <asp:CheckBoxField DataField = "NameStyle" HeaderText = "NameStyle"
                     SortExpression = "NameStyle"/>
                  <asp:BoundField DataField = "Title" HeaderText = "Title" SortExpression = "Title"/>
                  <asp:BoundField DataField = "FirstName" HeaderText = "FirstName"
                     SortExpression="FirstName"/>
                  <asp:BoundField DataField = "MiddleName" HeaderText = "MiddleName"
                     SortExpression = "MiddleName"/>
                  <asp:BoundField DataField = "LastName" HeaderText = "LastName"
                     SortExpression = "LastName"/>
                  <asp:BoundField DataField = "Suffix" HeaderText = "Suffix"
                     SortExpression = "Suffix"/>
                  <asp:BoundField DataField = "EmailAddress" HeaderText = "EmailAddress"
                     SortExpression = "EmailAddress"/>
               </Columns>

            </asp:GridView>

            <br/>

         </div>

         <asp:LINQDataSource ID = "LINQDataSource1" runat = "server"

            ContextTypeName = "LINQWebApp1.AdventureWorksDataContext" EntityTypeName = ""
               TableName = "Contacts">

         </asp:LINQDataSource>
      </form>
   </body>
</html>

ここで、プロパティContextTypeNameをデータベースを表すクラスのプロパティに設定することが重要であることに注意してください。 たとえば、ここではLINQWebApp1.AdventureWorksDataContextとして指定されています。このアクションにより、LINQDataSourceとデータベースの間に必要な接続が確立されるためです。

LINQを使用したASP.NETページでのデータの挿入、更新、削除

上記のすべてのステップを厳密に完了した後、 LINQDataSource Control から LINQDataSource Tasks を選択し、次のスクリーンショットに示すように、挿入を有効にし、更新を有効にし、同じから削除を有効にする3つのボックスをすべて選択します。

LINQ-ASP.Net

すぐに、宣言型マークアップが次のように画面に表示されます。

<asp:LINQDataSource
   ContextTypeName = "LINQWebApp1.AdventureWorksDataContext"
   TableName = "Contacts"
   EnableUpdate = "true"
   EnableInsert = "true"
   EnableDelete = "true"
   ID = "LINQDataSource1"
   runat = "server">
</asp:LINQDataSource>

複数の行と列があるので、グリッドの選択された行の詳細のみを表示するために、グリッドビューコントロールの下に詳細ビューまたはマスターコントロールという名前の別のコントロールを.aspxフォームに追加することをお勧めします。 詳細ビューコントロールから詳細ビュータスクを選択し、以下に示すようにチェックボックスをオンにします。

LINQ-ASP.Net

次に、変更を保存し、Ctrl + F5キーを押してブラウザーでページを表示します。ここで、詳細ビューコントロールのレコードを削除、更新、挿入できます。