[英]Multi Tenancy in ASP.NET MVC Application
在下面的示例中,用最少的冗余代碼實現多租戶的有效方法是什么? 在這種情況下,租戶是一名學生。 學生所在的學校有2個地點,每個地點都需要將數據(即課程)存儲在單獨的數據庫中。 學生登錄時,他們的位置決定了要從哪個數據庫中提取。
我正在使用實體框架和存儲庫模式。 目前,我已經實現了訪問位置1數據庫的實現。 我已經研究了實現位置2的不同選項,例如在HomeController構造函數中注入TenantContext,但是我一直在堅持如何設置正確的數據庫連接以及哪種方法最有效。
以下是僅位置1的代碼。
控制器示例
public class HomeController : Controller
{
ICourseRepository courseRepository;
//How to set the correct repository to use based on location?
public HomeController(ICourseRepository courseRepository)
{
this.courseRepository = courseRepository;
}
//Register for a new class
public ViewResult Register()
{
var courseList = courseRepository.AvailableCourses();
return View(courseList);
}
}
課程資料庫
public class CourseRepository : ICourseRepository
{
private Location1DB context = new Location1DB();
public List<Course> AvailableCourses()
{
//Get available courses from Location 1 Course Table
}
}
Location1Model.Context.cs (使用EF DbContext Generator生成)
public partial class Location1DB: DbContext
{
public Location1DB()
: base("name=Location1DB")
{
}
public DbSet<Course> Courses { get; set; }
}
Web.config
<connectionStrings>
<add name="Location1DB" ... />
<add name="Location2DB" ... />
</connectionStrings>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.