【发布时间】:2014-04-17 04:37:17
【问题描述】:
在通过 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 和一个实体框架。我相信我刚刚拿到了 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;" />
所以我已经阅读了实体框架一和生成方法,建议使用附加到 EDMX 文件的实体框架设计器。但我没有 EDMX 文件。所以我很困惑我是否以某种方式让自己陷入了某种疯狂状态,或者没有 EDMX 文件是否正常?
最终我该如何创建一个实体框架连接字符串,它可以从我引用的 DLL 中正确使用它需要的任何东西(上下文等)?
编辑
我还应该补充一点,我看不到这些字符串中似乎经常引用的任何 csdl、ssdl 文件...
【问题讨论】:
-
当您使用 Code First 时,没有模型文件。类和上下文是您的模型。所以是的,没有模型文件是正常的。因此,问题必须与您的实体或上下文的引用或可访问性(公共与私有)有关。如果您将包含一两个类的上下文文件复制到 Web 应用程序项目中,会发生什么情况?这种情况下可以用吗?
-
@JotaBe:谢谢。我相信我今天找到了答案,那就是你不能使用配置。相反,使用 CodeFirst 时有不同的绑定方式。
标签: visual-studio-2012 entity-framework-6