不修改DataContext的连接字符串

时间:2013-01-09 10:23:52

标签: c# entity-framework

我有数据上下文

public class KOATUUContext : DbContext
{
    static KOATUUContext()
    {
        Database.SetInitializer<KOATUUContext>(null);
    }

    public KOATUUContext()
        : base("KOATUU")
    {
    }

    public DbSet<KOATUU> KOATUUs { get; set; }
    public DbSet<Region> Regions { get; set; }
    public DbSet<TerType> TerTypes { get; set; }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Configurations.Add(new KOATUUMap());
        modelBuilder.Configurations.Add(new RegionMap());
        modelBuilder.Configurations.Add(new TerTypeMap());
        base.OnModelCreating(modelBuilder);

    }
}

我希望我的上下文加载正确的连接字符串,因此我在root web.config中指定了以下内容

<?xml version="1.0"?>
<configuration>

<connectionStrings>
<add name="RealEstateAgency"
         connectionString="data source=DIMIAS-PC\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" />
<add name="KOATUU" connectionString="Data Source=streamer2005\tc;Initial Catalog=KOATUU;Persist Security Info=True;User ID=*****;Password=*****;MultipleActiveResultSets=True"
        providerName="System.Data.SqlClient" />

你能告诉我可能是什么问题吗?执行结果 - 默认连接字符串到SQL Express。

1 个答案:

答案 0 :(得分:1)

我之前只使用过数据库,当生成DbContext时,连接名称没有像这样指定:

    public KOATUUContext()
            : base("KOATUU")
        {
        }

但是像这样:

    public KOATUUContext()
            : base("name=KOATUU")
        {
        }

也许这就是问题所在。