ASP .Net Entity Framework每个用户一个数据库

时间:2016-03-30 13:18:04

标签: c# asp.net entity-framework asp.net-mvc-4 dbcontext

我制作的网络应用程序将由多家公司使用,我希望每个公司都有一个单独的数据库。

在登录屏幕上,用户将选择公司,并且它将转到单独的数据库以获取连接字符串数据。 应用程序首先使用代码,因此如果数据库尚未存在,则使用此新连接字符串创建数据库。

我的方法是将连接字符串存储在用户的会话中。

public MyContext() : base(MySession.Current.ConnectionString)
{
     Database.SetInitializer(new MyDevDbInitializer());    
}

我将一个默认连接字符串作为返回,以便它无法获取会话一。 这似乎有效但我可以看到它在获取存储的请求之前在每个请求上进行了相当多次的默认。但是数据库创建和CRUD操作工作正常。

我不知道我是否以正确的方式做到这一点,如果其他请求完成很重要(我猜他们是这样),那些请求是在内部完成的我似乎无法追踪它们。

抱歉这篇长篇文章。 :)

1 个答案:

答案 0 :(得分:0)

在我看来,每个公司使用1个数据库是件好事。对于用户来说,您需要创建一个存储所有用户所有信息的表,它可以足够大,无关紧要。我建议将1个实体用于多个数据库:http://olivierhelin.com/blog/entity-framework/entity-framework-6-one-entity-data-model-multiple-databases-2

希望得到这个帮助。