我正在研究ASP.NET MVC 4 Web应用程序.我使用Entity Framework作为数据访问层,使用数据库第一种方法(.edmx文件).
目前我在两个不同数据库中定义的连接表中存在问题(即我有两个.edmx文件).
例如,如果我想连接表,我正在执行以下查询: -
public ActionResult AutoComplete(string term)
{
var tech = repository.AllFindTechnolog(term).Take(100);//Call to the first database
var resources = repository.GetResources(tech.Select(a => a.IT360ID.Value).ToArray(), false);//call to the second database
var query = from techItems in tech
join resourcesItems in resources
on techItems.IT360ID.Value equals resourcesItems.RESOURCEID // join based on db2ID
orderby techItems.PartialTag
select new //code goes here
return Json(query, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
我将对数据库进行两次单独调用,并在应用程序服务器内部进行连接,这不是最佳的面向性能的解决方案.理想情况下,连接将完全在数据库引擎内部发生.
我知道存储过程将允许我纯粹在服务器上连接来自不同数据库的表,但我不想使用SP,因为它会使我的代码不易维护且不易测试.
所以我正在寻找一个解决方案,我可以使用实体框架进行连接并导致单个数据库连接?