繁体   English   中英

非静态方法在连接两个表时需要一个目标

[英]Non-static method requires a target at the time of joining two tables

我想加入我的 SUser 表和 TVSeries 表并将数据存储到映射器表中,但是在加入这两个表期间会发生此错误

我已经尝试过使用 LINQ 查询语法和 lambda 表达式,但它们都发生了同样的错误

这是用户控制器 class

public class UserController : Controller
    {
        // GET: User
        IRepository<TVSeries> repository1 = new TVSeriesRepository(new TVSFlixDbContext());
        IRepository<SUser> repository3 = new SUserRepository(new TVSFlixDbContext());
        TVSFlixDbContext db = new TVSFlixDbContext();
        public ActionResult User_Home()
        {

            return View(TempData["Matched_Data"] as SUser);
        }
        public PartialViewResult TVSList()
        {
            IList<TVSeries> TVSL = repository1.GetAll();
            return PartialView("TVSList", TVSL);
        }

        public ActionResult ADD(int ID)
        {
            SUser su = TempData["Matched_Data"] as SUser;
            var join_data = db.UTMappers.Include("User").Include("tvs").Where(p => p.UserID == su.UserID).Where(q => q.tvsID == ID).ToList();
            TempData["Joined_Data"] = join_data;
            User_TVSeries_Mapper mapper = TempData["Joined_Data"] as User_TVSeries_Mapper;
            db.UTMappers.Add(mapper);
            db.SaveChanges();
            return View();
        }



    }
}

这是我的 SUser model

public class SUser
    {
        [Key]
        public int UserID { get; set; }
        [Custom_Rules_Name]
        public string Name { get; set; }
        [Required]
        public string Email { get; set; }
        [Required]
        public int Age { get; set; }
        [Required]
        public string DOB { get; set; }
        [Required]
        public string Username { get; set; }
        [Required]
        public string Password { get; set; }
        [Required(ErrorMessage ="Type is Required")]
        public string User_Type { get; set; }
        public List<User_TVSeries_Mapper> utm { get; set; }
    }

这是我的 TVSeries model

public class TVSeries
    {
        [Key]
        public int TVSID { get; set; }
        public string Name { get; set; }
        public string Release_Date { get; set; }
        public string Description { get; set; }


        public IList<User_TVSeries_Mapper> utm { get; set; }
    }

这是我的映射器

public class User_TVSeries_Mapper
    {
        public SUser User { get; set; }
        public TVSeries tvs { get; set; }
        [Key,Column(Order =1)]
        public int UserID { get; set; }
        public string Username { get; set; }
        [Key,Column(Order =3)]
        public int tvsID { get; set; }
        [Display(Name ="TV Series")]
        public string tvsName { get; set; }

    }

这是 TVSList 的部分视图

@model IEnumerable<TVSFlix.Models.TVSeries>

<table class="table" border="1" style="width:500px">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Description)
        </th>
        <th>
            Options
        </th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Description)
        </td>
        <td>
            @Html.ActionLink("ADD", "ADD","User", new { id=item.TVSID },null)
        </td>
    </tr>
}

</table>

这是错误

非静态方法需要一个目标

Line 30:        {
Line 31:            SUser su = TempData["Matched_Data"] as SUser;
Line 32:            var join_data = db.UTMappers.Include("User").Include("tvs").Where(p => p.UserID == su.UserID).Where(q => q.tvsID == ID).ToList();
Line 33:            TempData["Joined_Data"] = join_data;
Line 34:            User_TVSeries_Mapper mapper = TempData["Joined_Data"] as User_TVSeries_Mapper;

在第 32 行

单击添加链接后,我想加入 SUser 和 TVSeries 表并将数据存储到映射器 class

db.UTMappers.Include("User").Include("tvs").Where(p => p.UserID == su.UserID).Where(q => q.tvsID == ID).ToList();

我在这里没有看到加入或自定义 select 操作。 如果您想加入表格,请使用“.Join()”。 “包括”将仅包括相关实体,而“位置”将过滤掉它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM