第一个实体数据源工作,第二个连接首先是空或无效

时间:2016-03-12 11:51:56

标签: .net entity-framework connection-string

我一直在做.NET多年,但实体模型正在吃我的午餐。

在我们编写新课程的过程中,我一直参与我的学校调整70-515 Training Kit的练习,以便在Visual Studio 2013上使用。我无法在716-718的页面Training Kit to work in Visual Studio 2013上进行练习。

我已经能够通过将我的应用程序池更改为使用32位应用程序来克服程序集加载问题,并且已经找到了如何安装EF以便可以创建源代码。这有一些问题(例如,EF没有创建命名空间),但实体模型正在被接受。

我无法克服的一个错误是,当网站运行时程序错误说明:

  

在。中找不到指定的命名连接   配置,不打算与EntityClient提供程序一起使用,   或无效。

我在Visual Studio 2013 Express上使用Windows 8.1。这里有版本问题吗?

这里奇怪的是页面上有两个EntityDataSources - 第一个有效。两者都使用相同的连接(我安装了LocalDB)。我已经得出结论,需要帮助。那里有谁知道怎么让这个工作?

如果问题太长,您能否告诉我Dallas-Fort Worth区域内某人的姓名?

  

注意:此站点不喜欢XML。我会邮寄任何回应我的人   用于web.config的XML和作为附件的实体模型。

我页面上的标记如下:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<div class="jumbotron">
    <h1>ASP.NET</h1>
    <p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS, and JavaScript.</p>
    <p><a href="http://www.asp.net" class="btn btn-primary btn-lg">Learn more &raquo;</a></p>
</div>

<div class="row">
    <div class="col-md-4">
        <h2>Customers</h2>
        <asp:EntityDataSource ID="EntityDataSource1" runat="server" ConnectionString="name=NorthwindEntitiesCnn" 
            DefaultContainerName="NorthwindEntitiesCnn" EnableFlattening="False" AutoPage="true" AutoSort="true"
            OrderBy="it.CompanyName" EntitySetName="Customers" 
            Select="it.[CompanyName], it.[CustomerID], it.[City], it.[Region], it.[Country], it.[Phone]">
        </asp:EntityDataSource>
        <asp:GridView ID="GridViewCustomers" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"
            DataSourceID="EntityDataSource1">
            <Columns>
                <asp:BoundField DataField="CustomerID" HeaderText="ID" ReadOnly="True" SortExpression="CustomerID" />
                <asp:BoundField DataField="CompanyName" HeaderText="Company" ReadOnly="True" SortExpression="CompanyName" />
                <asp:BoundField DataField="City" HeaderText="City" ReadOnly="True" SortExpression="City" />
                <asp:BoundField DataField="Region" HeaderText="Region" ReadOnly="True" SortExpression="Region" />
                <asp:BoundField DataField="Country" HeaderText="Country" ReadOnly="True" SortExpression="Country" />
                <asp:BoundField DataField="Phone" HeaderText="Phone" ReadOnly="True" SortExpression="Phone" />
                <asp:HyperLinkField DataNavigateUrlFields="CustomerID" DataNavigateUrlFormatString="orders.aspx?custId={0}"
                    HeaderText="Orders" Text="view orders" />
            </Columns>
        </asp:GridView>
        <asp:EntityDataSource ID="EntityDataSourceCust" runat="server" ConnectionString="name=NorthwindEntitiesCnn" DefaultContainerName="NorthwindEntitiesCnn" EnableFlattening="False" EntitySetName="Customers" Where="it.CustomerID=@custId" Include="Orders">
          <WhereParameters>
              <asp:QueryStringParameter QueryStringField="custId" Name="custId" DbType="String"/>
          </WhereParameters>
        </asp:EntityDataSource>
        <asp:DetailsView ID="DetailsViewCust" DataSourceID="EntityDataSourceCust" runat="server" Height="50px" Width="125px" AutoGenerateRows="False" DataKeyNames="CustomerID" OnDataBound="DetailsViewCust_DataBound">
            <Fields>
                <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True" SortExpression="CustomerID" />
                <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" />
                <asp:BoundField DataField="ContactName" HeaderText="ContactName" SortExpression="ContactName" />
                <asp:BoundField DataField="ContactTitle" HeaderText="ContactTitle" SortExpression="ContactTitle" />
                <asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address" />
                <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
                <asp:BoundField DataField="Region" HeaderText="Region" SortExpression="Region" />
                <asp:BoundField DataField="PostalCode" HeaderText="PostalCode" SortExpression="PostalCode" />
                <asp:BoundField DataField="Country" HeaderText="Country" SortExpression="Country" />
                <asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" />
                <asp:BoundField DataField="Fax" HeaderText="Fax" SortExpression="Fax" />
            </Fields>
        </asp:DetailsView>
        <asp:GridView ID="GridViewOrders" runat="server"></asp:GridView>
    </div>
</div>

页面的代码隐藏如下:

public partial class _Default : Page
{
  protected void Page_Load(object sender, EventArgs e)
  {

  }

  protected void DetailsViewCust_DataBound(object sender, EventArgs e)
  {
    Customer cust =
    (Customer)DetailsViewCust.DataItem;
    this.GridViewOrders.DataSource = cust.Orders;
    this.GridViewOrders.DataBind();
  }
}

1 个答案:

答案 0 :(得分:0)

我觉得自己太笨了!我很抱歉浪费你的时间;在分析我得到的所有奇怪的错误之后,我们忽略了它们意识到两个实体数据源必须在不同的页面上!很抱歉浪费你的带宽......如果没有别的,请向我提出问题至少允许我组织我的想法。

                                                        Clark.