Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 通过NuGet混淆实现EntityFramework包含_Visual Studio 2012_Entity Framework 6 - Fatal编程技术网

Visual studio 2012 通过NuGet混淆实现EntityFramework包含

Visual studio 2012 通过NuGet混淆实现EntityFramework包含,visual-studio-2012,entity-framework-6,Visual Studio 2012,Entity Framework 6,在通过NuGet包含EntityFramework之后,我真的很困惑。因此,我创建了一个名为CustomModules的项目,在这里我得到了我的数据库上下文: public class Context : DbContext { public virtual IDbSet<FreightCompany> Companies { get; set; } public virtual IDbSet<FuelSurcharge> FuelSurcharges {

在通过NuGet包含EntityFramework之后,我真的很困惑。因此,我创建了一个名为CustomModules的项目,在这里我得到了我的数据库上下文:

public class Context : DbContext
{
    public virtual IDbSet<FreightCompany> Companies { get; set; }
    public virtual IDbSet<FuelSurcharge> FuelSurcharges { get; set; }
    public virtual IDbSet<Zone> Zones { get; set; }
    public virtual IDbSet<ZoneMapping> ZoneMappings { get; set; }
    public virtual IDbSet<Warehouse> Warehouses { get; set; }
    public virtual IDbSet<ShippingRate> ShippingRates { get; set; }
    public virtual IDbSet<Markup> Markups { get; set; }
}
我已经启用了迁移,所有这些都被推送到了数据库中。我现在想在web应用程序中使用它。因此,我将连接字符串从CustomModules.appconfig复制到我的CMSApp.webconfig

此时,我尝试在ASPX页面上使用EntityDataSource,发现没有命名容器可供选择

所以我读了各种各样的书,发现有两种类型的连接字符串。一个典型的ADO和一个实体框架。我想我刚刚得到了一个:

<add name="Context" providerName="System.Data.SqlClient" connectionString="Persist Security Info=False;database=DS_Kentico;server=SERVER;user id=USER;password=PWD;Current Language=English;Connection Timeout=240;" />
因此,我已经阅读了EntityFrameworkOne和生成一个实体框架的方法,建议使用附加到EDMX文件的EntityFrameworkDesigner。但我没有EDMX文件。所以我很困惑,是我让自己进入了某种疯狂的状态,还是没有EDMX文件是正常的

最终,我该如何创建一个实体框架连接字符串,该字符串正确地使用我引用的DLL中需要的任何内容、上下文等

编辑


我还应该补充一点,我看不到任何csdl、ssdl文件在这些字符串中经常被引用…

要使用代码优先的方法,您需要以不同的方式编写连接字符串,假设use LocalDb和MDF文件将附加到您的App_数据解决方案的文件夹:

   <add name="SomeContext"
         connectionString="Data Source=(LocalDb)\v11.0;AttachDBFileName=|DataDirectory|\YOURNAME.mdf;Initial Catalog=YOURNAME;Integrated Security=SSPI"
         providerName="System.Data.SqlClient"/>
您还需要为localDb配置连接工厂:

  <entityFramework>
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>

数据库应该在您第一次从代码创建DbContext类时创建,直到不会创建数据库为止。

首先使用代码时,没有模型文件。类和上下文是您的模型。所以是的,没有模型文件是正常的。因此,问题一定与实体或上下文的引用或可访问性公共与私有有关。如果使用一个或两个类将上下文文件复制到web应用程序项目,会发生什么情况?你能把它用在那种情况下吗?@JotaBe:谢谢。我相信我今天找到了答案,那就是你不能使用配置。相反,使用CodeFirst时有一种不同的绑定方式。
  <entityFramework>
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>