1

我正在使用实体框架。我有以下实体:

public class Articolo
{
    ..
    public virtual ICollection<Fornitore> Fornitori { get; set; }
}

public class Fornitore
{
  ...
   public virtual ICollection<Articoli> Articoli { get; set; }    }

以下代码:

List<Fornitore> result = new List<Fornitore>();
var r = zefiroContext.Articoli.Where(p => p.Id == IdArticolo).Select(p => p.Fornitori).ToList();
result = r;

给出编译器错误:

无法将类型“System.Collections.Generic.List < System.Collections.Generic.ICollection < prova2.Model.Fornitore>>”隐式转换为“System.Collections.Generic.List < prova2.Model.Fornitore>”

我怎样才能得到我的List < Fornitore >

4

2 回答 2

4

好吧,您实际上是在尝试选择多个集合,我认为这就是您的问题所在,将您的更改SelectSelectMany可能会为您解决问题,但我不确定这是否是您想要的功能。将会发生的事情是SelectMany将所有单独的结果集压缩到一个集合中,然后可以将其转换为模型类型的列表与模型类型的集合列表。

var r = zefiroContext.Articoli.Where(p => p.Id == IdArticolo).SelectMany(p => p.Fornitori).ToList();
于 2012-11-05T23:18:25.153 回答
0

每个 Articolo 都有许多 Fornitori - 所以你会得到一个列表列表......

您可能只想获取具有 matchign id 的匹配单个项目...

var r = zefiroContext.Articoli.First(p => p.Id == IdArticolo).Select(p => p.Fornitori).ToList();
于 2012-11-05T23:22:52.157 回答