我有两个模型类,它们在两个不同的数据库中存储资产信息,如下所示: -
Public class Resource {//from first databsee
Public String Name {set; get;}
Public Long RESOURCEID {set; get;}
//code goes here
}
Public class Technology {//from second database
Public String Tag {set; get;}
Public Long IT360ID {set; get;} // this contains the ResoruceID from the first table
//code goes here
}
目前在我的搜索操作方法中,应该从两个数据库中搜索数据,我有以下内容: -
public IQueryable<Technology> AdvanceSearch(NameAdvanceSearch nas)
{
var relatedresources = entities.Resources
.Where
(a =>
(String.IsNullOrEmpty(nas.name)
||
(nas.nameselection == "contain" && a.RESOURCENAME.ToLower().Contains(nas.name.ToLower().Trim()))
).Select(a => a.RESOURCEID).ToList();
var technology = tms.Technologies.Where(a =>
((relatedresourcess.Contains(a.IT360ID.Value)) && ((String.IsNullOrEmpty(nas.tag) ||
nas.tagselection == "contain" && a.Tag.ToLower().Contains(nas.tag))
)).OrderBy(a=>a.TechnologyType.Name).ThenBy(a2=>a2.PartialTag);
return technology;
因此,在第一个查询中,我选择了与输入的名称匹配的所有ID,在第二个查询中,我将根据Tag +在第一个查询中返回列表中的ID进行搜索。 目前我的方法运行良好,但我担心我的方法不可扩展,因为我拥有的数据越多,我将处理和比较服务器上的数据而不是在数据库中执行此操作。 那么我可以遵循哪些方法来加入数据库服务器中的两个表并检索相关记录? 感谢