我有一个方法与如下:EF - 匿名类型不能有倍数...
using (ubmmsEntities db = new ubmmsEntities())
{
var result = (from l in db.log_documents
join t in db.teams on l.op_user_team equals t.id
where l.tracking_id == trackingID
select new { l.op_code, l.op_date, l.op_description, l.op_refer_code, l.op_refer_comments, t.team_name, l.id });
return result.
现在我要补充另一列它,并在简单的SQL所有我需要是增加两个更多的内部连接,但我很失去如何在EF中做到这一点下面的结果在t2.team_name下的错误“一个匿名类型不能有多个同名的属性”。
using (ubmmsEntities db = new ubmmsEntities())
{
var result = (from l in db.log_documents
join t in db.teams on l.op_user_team equals t.id
join r in db.refers_codes on l.op_refer_code equals r.code
join t2 in db.teams on r.id equals t2.id
where l.tracking_id == trackingID
select new { l.op_code, l.op_date, l.op_description, l.op_refer_code, l.op_refer_comments, t.team_name, l.id, t2.team_name });
return result.ToList();
}
所以,我看了看这里和那里,发现this thread,但我无法弄清楚如何应用解决方案,我的方法。我搜索了“EF命名类型”,类似于试图了解从我这里要求什么,但老实说,我无法自己弄清楚。
因此,我相信问题是因为EF要我给我的db.team设置一个唯一的名称......我认为我通过调用它来给它t2。这种方法对SQL有效,但我不明白如何将这些应用于我的方法。我确实发现了一些线索,例如new{t2=t.id}
,但是不同的错误开始在不同的地方弹出。
请帮助/指示?
从回答第二个句子:_“可以解决这个问题给予明确的属性名称,例如:'新的{U1 = m.UserId ,u2 = u.UserId}'“_...这就是解决方案。如果这导致新的错误,请给他们看。 – CodeCaster
使用'在r.id中的db.teams中加入t2等于new {t2 = t2.id}'将错误更改为'join'“join子句中的一个表达式的类型不正确”。我确实认为链接问题可能是我需要的,问题是我无法弄清楚正在做什么并应用它 –
这不是您需要更改的连接部分,而是'select new {。 ..}部分。 – CodeCaster