C# “首先从我的代码中访问数据库连接”;表「;班
是否可以从代码第一个“表”类内部访问当前连接 我正在尝试编写一个MVC多租户应用程序(1个应用程序,多个db),我能想到的最简单的方法是在创建dbcontext时传递连接字符串(或租户名称)(我已经研究了其他方法,但并不真正理解它们)。但是,一旦进入table类,我就无法访问当前的db连接来执行我需要的其他操作 示例代码C# “首先从我的代码中访问数据库连接”;表「;班,c#,asp.net-mvc,entity-framework-5,C#,Asp.net Mvc,Entity Framework 5,是否可以从代码第一个“表”类内部访问当前连接 我正在尝试编写一个MVC多租户应用程序(1个应用程序,多个db),我能想到的最简单的方法是在创建dbcontext时传递连接字符串(或租户名称)(我已经研究了其他方法,但并不真正理解它们)。但是,一旦进入table类,我就无法访问当前的db连接来执行我需要的其他操作 示例代码 public class ConnectionContext : DbContext { public ConnectionContext(String connect
public class ConnectionContext : DbContext
{
public ConnectionContext(String connectionString)
: base(connectionString)
{
if (!this.Database.Exists())
throw new Exception("Database does not exist");
}
public DbSet<Table1> Table1 { get; set; }
}
[Table("Table1")]
public class Table1
{
[Key]
public String Column1 { get; set; }
public String Column2 { get; set; }
public Int32 GetNoOfColumns()
{
using (var conn = new ConnectionContext("???")) // <-- **issue here**
{
//Code to get info
return 0;
}
}
public void Authorize()
{
using (var conn = new ConnectionContext("???")) // <-- **issue here**
{
this.Column2 = "Authorized";
conn.Entry(this).State = EntityState.Modified;
conn.SaveChanges();
}
}
}
公共类ConnectionContext:DbContext
{
公共连接上下文(字符串连接字符串)
:基本(连接字符串)
{
如果(!this.Database.Exists())
抛出新异常(“数据库不存在”);
}
公共数据库集表1{get;set;}
}
[表(“表1”)]
公共课表1
{
[关键]
公共字符串Column1{get;set;}
公共字符串Column2{get;set;}
公共Int32 GetNoOfColumns()
{
使用(var conn=new ConnectionContext(“???”)/您不必使用连接字符串参数创建构造函数,您可以像这样创建dbcontext类:
public class ConnectionContext : DbContext
{
public ConnectionContext()
: base("nameOrConnectionString")
{
if (!this.Database.Exists())
throw new Exception("Database does not exist");
}
public DbSet<Table1> Table1 { get; set; }
}
您不必使用连接字符串参数创建构造函数,您可以按如下方式创建dbcontext类:
public class ConnectionContext : DbContext
{
public ConnectionContext()
: base("nameOrConnectionString")
{
if (!this.Database.Exists())
throw new Exception("Database does not exist");
}
public DbSet<Table1> Table1 { get; set; }
}
不确定以我所看到的方式是否可能。不确定以我所看到的方式是否可能。这在这个例子中不起作用,因为这应该是多租户的,它只会从web.config读取相同的连接字符串,不是吗?啊,我明白了,你看过这篇文章了吗?是的,那篇似乎是更多适用于使用一个数据库和多个模式的用户。我想知道我是否可以使用Ninject或类似的工具将context属性添加到所有数据库集。这在本例中不起作用,因为这应该是多租户,并且只需从web.config读取相同的连接字符串,不是吗?啊,我知道了,你看过了吗在这篇文章中?是的,这篇文章似乎更适合使用一个数据库和多个模式的人。我想知道我是否可以使用Ninject或类似的东西将上下文属性添加到所有数据库集。