c# - 该类型出现在单个 LINQ to Entities 查询中的两个结构不兼容的初始化中
问题描述
我正在尝试从多个表中获取记录,最后两个表与之相关,所以我在它们之间进行连接,但第一个表与它们没有关系,但我需要从中获取数据。这是我的视图模型
public class AssignTodoVM
{
public int TOdoPresetTeamID { get; set; }
public int UserId { get; set; }
public int TaskId { get; set; }
public string TaskName { get; set; }
public DateTime CreatedDate { get; set; }
public string userName { get; set; }
public int? TeamId { get; set; }
}
我写了以下查询并得到错误。
var Tasks = (from c in _context.ToDoPresets
select new AssignTodoVM
{
TaskId = c.ToDoPresetID,
TaskName = c.Title,
TOdoPresetTeamID = c.ToDoPresetID,
}).Union(
from q in _context.AppTeamMembers
join s in _context.AppUsers
on q.AppUserID equals s.UserId
where q.IsManager == false
select new AssignTodoVM
{
CreatedDate = System.DateTime.Now,
UserId = s.UserId,
userName = s.UserName,
TeamId = q.AppTeamID
}).ToList();
解决方案
这两个片段
new AssignTodoVM
{
TaskId = c.ToDoPresetID,
TaskName = c.Title,
TOdoPresetTeamID = c.ToDoPresetID,
}
和
new AssignTodoVM
{
CreatedDate = System.DateTime.Now,
UserId = s.UserId,
userName = s.UserName,
TeamId = q.AppTeamID
}
创建相同类型但具有不同初始化的对象。您需要使其中一个与另一个相似。这是一个尝试(这可能是不正确的,因为我不知道您的课程的具体情况);做第一个
new AssignTodoVM
{
CreatedDate = System.DateTime.Now,
UserId = -1,
userName = "preset",
TeamId = -1,
TaskId = c.ToDoPresetID,
TaskName = c.Title,
TOdoPresetTeamID = c.ToDoPresetID,
}
第二个
new AssignTodoVM
{
CreatedDate = System.DateTime.Now,
UserId = s.UserId,
userName = s.UserName,
TeamId = q.AppTeamID,
TaskId = -1, // this is very likely wrong!
TaskName = "",
TOdoPresetTeamID = -1,
}
正如我所说,这可能不是正确的答案,但我没有足够的关于你的课程的信息来使它更好。
推荐阅读
- python - 我无法在 matplotlib 中关闭我的绘图轴
- qt - 有没有办法让 QPushButton 背景透明,但添加图标?
- vhdl - 有人会帮我解决这个错误吗:std_logic_vector 不能有返回类型为 std_logic_vector 的操作数
- google-sheets - 向受保护工作表添加行的权限
- prolog - 插入(X,[],[X])。插入最后一个位置
- javascript - 刷新后继续倒计时
- javascript - 如何从获取请求中提取值?
- python - 如何使用 opencv 去除图像上的这些平行线噪声
- java - layoutinflater 不会膨胀整个布局
- python - Odoo 11 从计算字段中插入 one2many