我正在使用实体框架在Web Api中使用以下linq语句。一切都很好,除了在我的linq语句中我不知道如何传递ICollection
public class projOverview
{
public int proj_id { get; set; }
public string name { get; set; }
public virtual ICollection<p_type> p_type { get; set; }
}
linq声明是
var pOver= (from c in db.pr_d
select new pOver
{
name=c.proj.name,
proj_id=c.proj.p_id,
p_type= ICollection<c.proj.pro_type>
}).Take(7);
return pOver;
我在“p_type = ICollection”上得到intellisense错误,说它是一个类型但是像变量一样使用。 请让我知道如何解决它。谢谢
答案 0 :(得分:1)
错误消息应该有用,您将p_type设置为类型(ICollection<T>
)而不是变量,您需要更改为:
var pOver = (from c in db.pr_d
select new ProjOverview
{
name=c.proj.name,
proj_id=c.proj.p_id,
p_type= c.p_type_variable
}).Take(7);
return pOver;
我也注意到你使用pOver作为类名,也许你打算使用ProjOverview?
答案 1 :(得分:0)
指定类型时,请使用typeof
运算符
var pOver= (from c in db.pr_d
select new pOver
{
name=c.proj.name,
proj_id=c.proj.p_id,
p_type= typeof(ICollection<c.proj.pro_type>)
}).Take(7);
return pOver;