我有 2 个使用 EF w/MVC4 的数据库。我已经通过 SO 进行了搜索。我需要将警报列表返回到部分视图。但是,警报应该由具有特定标识符的特定用户名过滤。视图是强类型的,我想保持这种状态。
我有 LINQ 查询返回到一个列表,它是与特定 ID 关联的用户名列表。您可以在第二个 case 语句中看到需要查找两个表的位置。我想在没有 viewmodel 类的情况下执行此操作。
这是代码:
public PartialViewResult DashboardAlerts()
{
Database.SetInitializer<AlertsContext>(null);
AlertsContext db = new AlertsContext();
Database.SetInitializer<MemberUsersContext>(null);
MemberUsersContext mdb = new MemberUsersContext();
var members = new List<MemberUsers>(mdb.MemberUsers);
var alerts = new List<Alerts>(db.Alerts);
var query = from x in alerts
join y in members
on x.username equals y.username
where y.clubID == (int)Session["ClubID"]
select new { username = y.username};
var list = query.ToList();
switch (Session["RoleName"].ToString())
{
case "GMC Admin": return PartialView(db.Alerts.ToList());
case "Club Admin": return //return db.Alerts.ToList() that has only usernames from query.ToList();
default: return PartialView(db.Alerts.Where(x => x.username == User.Identity.Name).ToList());
}
}
底线:我想仅使用查询列表的用户名属性中的值交叉引用 db.Alerts。