2016-05-23 10 views
1

現在、異なる接続文字列を使用する2つのdbcontextクラスが設定されています。 「Cedulados」テーブルから選択しようとするたびに、何らかの理由で「DefaultConnection」文字列を使用して巻き上げられます。私は間違って何をしていますか?MVCデータコンテキスト内の2つの異なる接続文字列

public class DataContext : DbContext 
{ 
    public DataContext() 
     : base("DefaultConnection") 
    { 
    } 

    public DbSet<SEG_CEmpleados> Empleados { get; set; } 
    public DbSet<SEG_CEmpNuevo> EmpleadosNuevos { get; set; } 
    public DbSet<SEG_Estados> Estados { get; set; } 
    public DbSet<SEG_Tarjetas> Tarjetas { get; set; } 
    public DbSet<SEG_Visitantes> Visitantes { get; set; } 
    public DbSet<SEG_Tipos> Tipos { get; set; } 
    public DbSet<SEG_TiposDoc> TiposDoc { get; set; } 

    public DbSet<SEG_Departamentos> Departamentos { get; set; } 
    internal void Refresh(RefreshMode clientWins, object articles) 
    { 
     throw new NotImplementedException(); 
    } 

} 

public class CeduladosContext : DbContext 
{ 
    public CeduladosContext() 
     : base("Cedulados") 
    { 
    } 

    public DbSet<Cedulados20110712> Cedulados { get; set; } 

    internal void Refresh(RefreshMode clientWins, object articles) 
    { 
     throw new NotImplementedException(); 
    } 
} 

public JsonResult PerCedula(string id) 


{ 
    string mun = id.Substring(0, 3); 
    string seq = id.Substring(3, 7); 
    string ver = id.Substring(10, 1); 

    var context = new CeduladosContext(); 

    var ced = context.Cedulados.FirstOrDefault(); 

    return Json(ced, JsonRequestBehavior.AllowGet); 
} 

答えて

0

(注意これを試してみてください 『で』 =名前をコンストラクタパラメータ):

public DataContext() : base("name=DefaultConnection") 
public CeduladosContext() : base("name=Cedulados") 

さらに詳しい情報がありますhere

0

MSDNでDbContextコンストラクタを検索しました。データベース名または接続文字列をパラメータとして使用します。あなたの質問では、テーブルCeduladosから選択していると言いました。あなたはDbContextにも渡しています。テーブル名の代わりにデータベース名を渡す必要があります。それとも、あなたのデータベースには、名前が付けられ、「Cedulados?ここ

https://msdn.microsoft.com/en-us/library/gg679467(v=vs.113).aspx

あなたが掲示するものと説明して類似したコードを証明する別のリソースである。

https://msdn.microsoft.com/en-us/data/jj592674.aspx

関連する問題