![](/img/trans.png)
[英]How to Get a Object from IEnumerable collection using LINQ Lambda?
[英]Inserting IEnumerable collection in an object using Linq
嗨,我有以下課程
public class bizOrg
{
public string name { get; set; }
public int p_id { get; set; }
public virtual product product { get; set; }
public IEnumerable<newStructure> newStructure { get; set; }
}
和
public class newStructure
{
public int project_id { get; set; }
public string a_name { get; set; }
public string a_phone { get; set; }
public virtual product product { get; set; }
}
我有以下Linq聲明
var acc = (from c in db.p_account
where c.p_id == id
select new bizOrg
{
p_id = c.product.id,
name = c.name,
newStructure= new newStructure
{
a_name = c.name,
a_phone = c.phone,
}
});
在上面的linq語句中,我得到了intelicense錯誤說
Cannot implicitly convert type newStructure to 'System.Collections.Generic.IEnumerable<newStructure>' . An explicit conversion exists
請讓我知道如何糾正此錯誤。 謝謝
newStructure
需要是一個集合。 如果你只有一個平面列表(意味着底層集合只有一個項目),那么你可以這樣做:
var acc = (from c in db.p_account
where c.p_id == id
select new bizOrg
{
p_id = c.product.id,
name = c.name,
newStructure= new List<newStructure>
{ new newStructure()
{
a_name = c.name,
a_phone = c.phone,
}
}
});
如果需要某個其他組織(例如,按name
分組或其他屬性),則需要在所需輸出中提供更多詳細信息。
這段代碼;
select new bizOrg
{
p_id = c.product.id,
name = c.name,
newStructure= new newStructure
{
a_name = c.name,
a_phone = c.phone,
}
});
創建一個newStructure
實例並嘗試將其分配給IEnumerable<newStructure>
類型的屬性IEnumerable<newStructure>
而不是;
newStructure = new { new newStructure() { a_name = c.name, a_phone = c.phone } }
它只是使用靜態初始化程序將您的單例放入集合中。
您必須在linq語句中創建一個新的IEnumerable<newStructure>
。 它需要一組對象,您只需要分配單個對象而不是單個對象的集合。
var acc = (from c in db.p_account
where c.p_id == id
select new bizOrg
{
p_id = c.product.id,
name = c.name,
newStructure= new List<newStructure>{
new newStructure{
a_name = c.name,
a_phone = c.phone,
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.