我目前设置了2个使用不同连接字符串的dbcontext类。每当我尝试从“Cedulados”表中进行选择时,由于某种原因它会使用“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);
}
答案 0 :(得分:0)
我在MSDN上搜索了DbContext构造函数,它说它将数据库名称或连接字符串作为参数。在你的问题中,你说你正在从表Cedulados中选择,你也传递给你的DbContext。您似乎应该传递数据库名称而不是表名。或者你的数据库也被命名为&#34; Cedulados?
https://msdn.microsoft.com/en-us/library/gg679467(v=vs.113).aspx
这是另一个资源,展示了类似的代码,并解释了您发布的内容。
答案 1 :(得分:0)
试试这个(注意&#34; name =&#34;在构造函数参数中):
public DataContext() : base("name=DefaultConnection")
public CeduladosContext() : base("name=Cedulados")
您可以找到更多信息here。