首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据过滤关系法

数据过滤关系法
EN

Stack Overflow用户
提问于 2017-06-25 05:55:00
回答 1查看 107关注 0票数 0

我有两个表叫做“用户”和“订阅”。使用这些控制器,我能够检索所有用户数据,但我只想检索订阅列" status“中具有订阅状态=1的用户数据。请告诉我如何过滤我的结果

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using WebApplication2.Models;

namespace WebApplication2.Controllers
{
    public class EmailCampaignController : Controller
    {
        private db_likEntities db = new db_likEntities ();


        // GET: Only Subscribed Users info
        public ActionResult Index()
        {
            var users = db.Users.Include(u => u.Countries);
            return View(users.ToList());
        }

     }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-25 05:59:24

试试这个编辑。希望您的users表中有一个名为status的列,否则这将无法工作。

代码语言:javascript
复制
public class EmailCampaignController : Controller
{
    private db_likEntities db = new db_likEntities ();


    // GET: Only Subscribed Users info
    public ActionResult Index()
    {
        //first get all subscriptions whose status is 1
    var trueSubscriptions = db.Subscriptions.Where(s => s.status == 1).ToList();

    //use this variable to filter users by Id
    List<User> users = new List<User>();

    var allUsers = db.Users.Include(u => u.Countries);

    for (int i = 0; i < trueSubscriptions; i++)
    {
        users.Add(allUsers.FirstOrDefault(x => x.Id == trueSubscriptions[i].UserId));
    }


    return View(users.ToList());
    }

 }

为了更简单地实现这一点,您必须像这样编辑模型。

模型

代码语言:javascript
复制
public class  User
{
   public int id{get;set;}
   public virtual Subscription subscription{get;set;}
}

public class Subscription
{
   public int id{get;set;}
   public bool status{get;set;}
   public int UserId{get;set;}
}

使用这种方法,您只需获得这样的订阅用户即可。

代码语言:javascript
复制
`var users = db.Users.Include(u => u.Countries)
                        .Where(u => u.subscription.status == true)
                        .ToList();

    return View(users);`
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44743620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档