这是如何工作的:
var query = _context.Routing_Tool
.Where(rt => rt.Id == id)
.FirstOrDefault();
return query;
但这没有
var query = _context.Routing_Tool
.Join(_context.Routing_Tool_Prioritization_Matrix,
rt => rt.Id,
rp => rp.RoutingToolId,
(rt, rp) => new
{
Id = rt.Id,
Title = rt.Title,
LoeName = rp.LoeName,
}
)
.Where(rt => rt.Id == id)
.FirstOrDefault();
return query;
相反,在尝试加入表后,我得到并隐式转换类型错误。感谢帮助
全新的方法 - 包括我正在研究的旧方法以供参考。
public Routing_Tool GetItemsInitById(int id)
{
//var query = (from rt in _context.Set<Routing_Tool>()
// join rp in _context.Set<Routing_Tool_Prioritization_Matrix>()
// on rt.Id equals rp.RoutingToolId into grouping
// from rp in grouping.DefaultIfEmpty()
// select new Routing_Tool {
// Id = rt.Id,
// Title = rt.Title,
// Classification = rt.Classification,
// MainPOC = rt.MainPOC,
// RequestingDirectorate = rt.RequestingDirectorate,
// IsEnduring = rt.IsEnduring,
// IsApproved = rt.IsApproved,
// IsAssociated = rt.IsAssociated,
// DirectingRequirement = rt.DirectingRequirement,
// RequirementDescription = rt.RequirementDescription,
// RequestType = rt.RequestType,
// // LoeName = rp.LoeName,
// // LoePriority = rp.LoePriority,
// }
// ).FirstOrDefault();
// return query;
var query = _context.Routing_Tool
.Join(_context.Routing_Tool_Prioritization_Matrix,
rt => rt.Id,
rp => rp.RoutingToolId,
(rt, rp) => new
{
Id = rt.Id,
Title = rt.Title,
}
)
.Where(rt => rt.Id == id)
.FirstOrDefault();
return query;
//return _context.Routing_Tool.FirstOrDefault(p => p.Id == id);
}
答案 0 :(得分:1)
在第一种情况下,您的查询变量是 IQueryable
答案 1 :(得分:0)
我不得不通过添加一个集合、一个新的公共方法、一个新的选择查询来修改两个表的模型:
public Routing_Tool GetItemsInitById(int id)
{
var initPage = _context.Routing_Tool
.Include(pub => pub.Routing_Tool_Prioritization_Matrices)
.Where(rt => rt.Id == id)
.FirstOrDefault();
return initPage;
}
路由工具模型:
public class Routing_Tool
{
public Routing_Tool()
{
Routing_Tool_Prioritization_Matrices = new HashSet<Routing_Tool_Prioritization_Matrix>();
}
[Key]
[Required]
public int Id { get; set; }
[MaxLength(255)]
[Required]
public string Title { get; set; }
[MaxLength(255)]
[Required]
public string Classification { get; set; }
[MaxLength(255)]
[Required]
public string MainPOC { get; set; }
[MaxLength(10)]
[Required]
public string RequestingDirectorate { get; set; }
[MaxLength(1)]
[Required]
public int IsEnduring { get; set; }
[MaxLength(1)]
[Required]
public int IsApproved { get; set; }
[MaxLength(1)]
[Required]
public int IsAssociated { get; set; }
[Required]
public string DirectingRequirement { get; set; }
[Required]
public string RequirementDescription { get; set; }
[Required]
public string RequestType { get; set; }
public virtual ICollection<Routing_Tool_Prioritization_Matrix> Routing_Tool_Prioritization_Matrices { get; set; }
}
带有 FK 的尺寸表:
public class Routing_Tool_Prioritization_Matrix
{
[Key]
[Required]
public int Id { get; set; }
public string LoeName { get; set; }
public string LoePriority { get; set; }
public int RoutingToolId { get; set; }
[ForeignKey("RoutingToolId")]
public virtual Routing_Tool Routing_Tool { get; set; }
}