MVC 数据上下文中的两个不同的连接字符串
MVC two different connection strings in data context
我目前设置了 2 个使用不同连接字符串的 dbcontext 类。每当我尝试从 "Cedulados" table 到 select 时,由于某种原因,它最终会使用 "DefaultConnection" 字符串。我做错了什么?
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);
}
我在 MSDN 上搜索了 DbContext Constructor,它说它将数据库名称或连接字符串作为参数。在您的问题中,您说您正在从 table Cedulados 中进行选择,您也将其传递给 DbContext。看来您应该传递数据库名称而不是 table 名称。或者你的数据库也被命名为“Cedulados?
https://msdn.microsoft.com/en-us/library/gg679467(v=vs.113).aspx
这是另一个资源,展示了类似的代码,并对您发布的内容进行了解释。
试试这个(注意构造函数参数中的 "name="):
public DataContext() : base("name=DefaultConnection")
public CeduladosContext() : base("name=Cedulados")
您可以找到更多信息here。
我目前设置了 2 个使用不同连接字符串的 dbcontext 类。每当我尝试从 "Cedulados" table 到 select 时,由于某种原因,它最终会使用 "DefaultConnection" 字符串。我做错了什么?
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);
}
我在 MSDN 上搜索了 DbContext Constructor,它说它将数据库名称或连接字符串作为参数。在您的问题中,您说您正在从 table Cedulados 中进行选择,您也将其传递给 DbContext。看来您应该传递数据库名称而不是 table 名称。或者你的数据库也被命名为“Cedulados?
https://msdn.microsoft.com/en-us/library/gg679467(v=vs.113).aspx
这是另一个资源,展示了类似的代码,并对您发布的内容进行了解释。
试试这个(注意构造函数参数中的 "name="):
public DataContext() : base("name=DefaultConnection")
public CeduladosContext() : base("name=Cedulados")
您可以找到更多信息here。