1

新しいサイトでは、通常のn層のセットアップから、edmxファイルとエンティティデータソースを使用するEntityFrameworkサイトに移行しています。SiteUsersAdd.aspxページがあります。これがマークアップです...

<asp:EntityDataSource ID="SiteUserDataSource" runat="server" 
                ContextTypeName="NutritionBridgeModel.NutritionBridgeEntities" 
                EnableFlattening="False" EntitySetName="SiteUsers" EnableInsert="True" 
                Include="Person" ConnectionString="name=NutritionBridgeEntities" 
                DefaultContainerName="NutritionBridgeEntities" >
            </asp:EntityDataSource>
            <asp:EntityDataSource ID="DataUserTypes" runat="server" 
                ConnectionString="name=NutritionBridgeEntities" 
                DefaultContainerName="NutritionBridgeEntities" EnableFlattening="False" 
                EntitySetName="SiteUserTypes" Select="it.[SiteUserTypeID], it.[Description]">
            </asp:EntityDataSource>
            <asp:EntityDataSource ID="DataSubscriptionTypes" runat="server" 
                ConnectionString="name=NutritionBridgeEntities" 
                DefaultContainerName="NutritionBridgeEntities" EnableFlattening="False" 
                EntitySetName="SubscriptionTypes" 
                Select="it.[Description], it.[SubscriptionTypeID]">
            </asp:EntityDataSource>



            <asp:DetailsView ID="detailsInsertSiteUser" runat="server" AutoGenerateRows="False" DataSourceID="SiteUserDataSource" DefaultMode="Insert" CssClass="standardTable" >
                <Fields>
                    <asp:BoundField DataField="FirstName" HeaderText="First Name" ReadOnly="True" HeaderStyle-CssClass="rowHeader" SortExpression="FirstName"  ControlStyle-CssClass="standardTextbox" />
                    <asp:BoundField DataField="LastName" HeaderText="Last Name" ReadOnly="True" HeaderStyle-CssClass="rowHeader" SortExpression="LastName" ControlStyle-CssClass="standardTextbox" />
                    <asp:BoundField DataField="Email" HeaderText="Email" ReadOnly="True" HeaderStyle-CssClass="rowHeader" SortExpression="Email" ControlStyle-CssClass="standardTextbox" />
                    <asp:BoundField DataField="Password" HeaderText="Password" ReadOnly="True" HeaderStyle-CssClass="rowHeader" SortExpression="Password" ControlStyle-CssClass="standardTextbox" />
                    <asp:TemplateField HeaderText="User Type" SortExpression="UserTypeID" HeaderStyle-CssClass="rowHeader">
                        <InsertItemTemplate>
                            <asp:DropDownList ID="DropDownList1" runat="server" 
                                DataSourceID="DataUserTypes" DataTextField="Description" 
                                DataValueField="SiteUserTypeID" CssClass="standardDropdown">
                            </asp:DropDownList>
                        </InsertItemTemplate>
                    </asp:TemplateField>
                    <asp:CheckBoxField DataField="Active" HeaderText="Active" ReadOnly="True" HeaderStyle-CssClass="rowHeader" SortExpression="Active" />
                    <asp:TemplateField HeaderText="Subscription Type" HeaderStyle-CssClass="rowHeader" SortExpression="SubscriptionTypeID">

                        <InsertItemTemplate>
                            <asp:DropDownList ID="ddlSubscriptionTypes" runat="server" 
                                DataSourceID="DataSubscriptionTypes" DataTextField="Description" 
                                DataValueField="SubscriptionTypeID" CssClass="standardDropdown">
                            </asp:DropDownList>
                        </InsertItemTemplate>

                    </asp:TemplateField>
                    <asp:CheckBoxField DataField="TestAccount" HeaderText="Test Account" HeaderStyle-CssClass="rowHeader" ReadOnly="True" SortExpression="TestAccount" />
                    <asp:CommandField ShowInsertButton="True" ControlStyle-CssClass="standardButton" ItemStyle-CssClass="submitArea" />
                </Fields>
            </asp:DetailsView>

私はpersonsテーブルとsiteusersテーブルを持っています:

PERSONS:PersonID、FirstName、LastName SITEUSERS:SiteUserID、PersonIDなど。

したがって、新しいSITEUSERを作成するときは、新しいPERSONも作成したいと思います。entitydatasourceを使用してこれを行うためのエレガントな方法はありますか?コードビハインドに含める必要がありますか?もしそうなら、それはどのように見えますか?これまでのところ、コードビハインドにある場合は、このようなものである必要があると思います...

 Protected Sub detailsInsertSiteUser_ItemInserting(sender As Object, e As System.Web.UI.WebControls.DetailsViewInsertEventArgs) Handles detailsInsertSiteUser.ItemInserting
        NutritionBridgeContext = New NutritionBridgeEntities

        'insert new person
        Dim intPersonID As Integer = 0

        'use the generated identity field to insert into SiteUser record
        e.Values("PersonID") = intPersonID
    End Sub
4

0 に答える 0