EntityFramework可以使用提供程序System.Data.SqlClient的标准连接字符串吗?

时间:2016-04-25 19:24:08

标签: c# asp.net entity-framework

当您使用Entity Framework时,它会自动创建提供程序System.Data.EntityClient的连接字符串。

所以我最终得到两个连接字符串连接到我的配置中的同一个数据库:

<add connectionString="Server=S;Database=D;User ID=U;Password=P" name="DBConn" providerName="System.Data.SqlClient" />
<add connectionString="metadata=res://*/Entities.csdl|res://*/Entities.ssdl|res://*/Entities.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=S;initial catalog=D;user id=U;password=P;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" name="MyEntities" />

有没有办法通过让我的实体连接到第一个标准连接字符串而不是System.Data.EntityClient连接来合并这些?

1 个答案:

答案 0 :(得分:2)

如果你使用Code-First或Database-First,你还没有说过,但你可以将标准连接字符串传递给DbContext类构造函数。

public class MyDbContext : DbContext
{
    public MyDbContext() : base("My Connection String")
    {

我不是硬编码连接字符串的粉丝,所以我通常创建一个静态类,它有一个静态字段,使用任何逻辑获取我的连接字符串进行初始化。在这种情况下,您的DbContext类看起来像:

public class MyDbContext : DbContext
{
    public MyDbContext() : base(SomeStaticClass.MyConnectionString)
    {