2012-03-17 106 views
1

我试图返回列表清单。任何建议都是非常可观的。提前致谢。返回使用实体框架

它抛出这个错误:

Cannot implicitly convert type System.Collections.Generic.List<HTentityFramework.tblFlower> to
System.Collections.Generic.List<HTentityFramework.testDomain>

代码是:

public class GetFlowers 
{ 
    public IList<testDomain> getFlowerList() 
    { 
     TestContainer ctx = new TestContainer(); 
     return ctx.tblFlowers.ToList(); 
    } 
} 

public class testDomain 
{ 
    public string Name { get; set; } 
    public int quantity { get; set; } 
} 
+0

你有问题吗? – SLaks 2012-03-17 01:35:27

+0

它将错误引发为错误\t无法将类型'System.Collections.Generic.List '隐式转换为'System.Collections.Generic.List ' – Kurkula 2012-03-17 02:35:47

回答

4

错误是相当明确的 - 只是阅读!

您从getFlowerList返回的类型是IList<testDomain> - 但您是从EF对象集中选择的,该对象集的名称为tblFlowers

这个错误清楚地说,这是一个IList<tblFlower> - tblFlower对象的列表。

您的代码不能将tblFlowers列表转换为testDomain列表 - 这就是整个问题。

你需要或者自己提供一个转换,或者你需要从方法返回一个IList<tblFlower>

public IList<tblFlower> getFlowerList() <==== return an IList<tblFlower> here!! 
{ 
    TestContainer ctx = new TestContainer(); 
    return ctx.tblFlowers.ToList(); 
} 
+0

感谢您解决此问题。但是,我们不使用TESTDOMAIN班ILIST? – Kurkula 2012-03-17 16:16:47

+0

@Usham:如果从'tblFlowers'选择,然后你回来'tblFlower'对象的列表 - 所以你需要返回那些.....如果你想“隐藏”这一事实,并返回一些其他类型的,而不是 - 这是**给你**提供某种由EF('tblFlower')一些**其他数据类型**,你可能已经定义回到现实,实际类型转换/映射。还是那句话:你的工作,它需要清晰,明确的 - 在.NET中没有魔法可以为你做这个 – 2012-03-17 16:18:26