C# 该类型在单个LINQ to Entities查询中的两个结构不兼容的初始化中出现
我试图从多个表中获取记录,最后两个表与之有关系,因此我在它们之间进行了连接,但第一个表与它们没有关系,但我需要从中获取数据。 这是我的ViewModelC# 该类型在单个LINQ to Entities查询中的两个结构不兼容的初始化中出现,c#,linq,entity-framework-6,C#,Linq,Entity Framework 6,我试图从多个表中获取记录,最后两个表与之有关系,因此我在它们之间进行了连接,但第一个表与它们没有关系,但我需要从中获取数据。 这是我的ViewModel public class AssignTodoVM { public int TOdoPresetTeamID { get; set; } public int UserId { get; set; } public int TaskId { get; set; } public string T
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 = -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,
}
正如我所说的,这可能不是正确的答案,但我没有足够的关于您的类的信息来改进它。这两个片段
new AssignTodoVM
{
TaskId = c.ToDoPresetID,
TaskName = c.Title,
TOdoPresetTeamID = c.ToDoPresetID,
}
及
创建相同类型但具有不同初始化的对象。您需要使其中一个与另一个相似。这里有一个尝试(这可能是不正确的,因为我不知道您的类的细节);做第一个
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,
}
正如我所说,这可能不是正确的答案,但我没有足够的关于你们课程的信息来让它变得更好。非常感谢