c# - 非静态方法在连接两个表时需要一个目标
问题描述
我想加入我的 SUser 表和 TVSeries 表并将数据存储到映射器表中,但是在加入这两个表期间会发生此错误
我尝试过使用 LINQ 查询语法和 lambda 表达式,但它们都发生了相同的错误
这是 UserController 类
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 模型
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 模型
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 表并将数据存储到映射器类中
解决方案
db.UTMappers.Include("User").Include("tvs").Where(p => p.UserID == su.UserID).Where(q => q.tvsID == ID).ToList();
我在这里看不到加入或自定义选择操作。如果您想加入表格,请使用“.Join()”。“包括”将仅包括相关实体,而“位置”将过滤掉它们。
推荐阅读
- logstash - 无法在 Windows 中启动 logstash
- java - 'void android.widget.Switch.setOnCheckedChangeListener(android.widget.CompoundButton$OnCheckedChangeListener)' 在空对象引用上?
- java - 有没有办法从图像中获取印地语/中文文本而不在 Tika Tesseract 中指定语言?
- java - 如何在存根中注释隐式参数
- javascript - Javascript - 删除 URL 的某些部分并在之后添加查询
- mysql - MySQL INNER JOIN 与 GROUP BY 和 COUNT(*)
- javascript - 具有收益返回的静态生成器函数的正确打字稿语法是什么?
- php - 如何使用 PHP 删除文件夹及其子文件夹?
- java - 在 java 1.5 中将 double 转换为百分比 = 50%
- sql - 根据没有主键的日期连接两个表(SQL Server 2014)