如何在单个linq查询中获取多个表数据并将其绑定到自动完成搜索模型

时间:2013-07-21 20:34:15

标签: asp.net-mvc linq entity-framework linq-to-entities

我想像谷歌或Facebook一样进行自动完成搜索,我想从两个不同的表中获取数据,我正在使用实体框架和MVC-4 ..我到目前为止这是由ajax完成的 这是我的行动

public ActionResult AutoComplete(string term)
{
    var model = _db.Instructors
                   .OrderByDescending(u => u.Id)
                   .Where(u => u.FullName.Contains(term))
                   .Take(30)
                   .Select(u => new {
                      label = u.FirstName + " " + u.LastName
                   });

    return Json(model, JsonRequestBehavior.AllowGet);
}

我的JS

$(function () {

    var createAutoComplete = function () {
        var $input = $(this);

        var options = {
            source: $input.attr("data-otf-autocomplete"),
            select: submitAutoCompleteForm
        };

        $input.autocomplete(options);
    };
        $("input[data-otf-autocomplete]").each(createAutoComplete);
});

我想从这样的两个表中提取数据

var model = _db.Instructors
               .OrderByDescending(u => u.Id)
               .Where(u => u.FullName.Contains(term))
               .Take(30)
               .Select(u => new {
                   label = u.FirstName + " " + u.LastName
               });

var model2 = _db.courses
                .OrderByDescending(u => u.Id)
                .Where(u => u.title.Contains(term))
                .Take(30)
                .Select(u => new {
                    label = u.title
                });

            return Json(model2,model1 JsonRequestBehavior.AllowGet);

我想在自动填充列表中显示教师和课程..请帮助我

1 个答案:

答案 0 :(得分:0)

因此,您使用相同的匿名类型,您可以将教师与课程连接起来:

return Json(model1.Concat(model2), JsonRequestBehavior.AllowGet);