Linq使用导航属性检索实体

时间:2011-08-02 15:31:11

标签: c# linq entity-framework

Linq和EF。

我很新,所以我在使用导航属性(CmsContents)检索实体时遇到了一些问题。 我可以作为List返回,但不能作为IEnumerable返回。

  • 你能告诉我我的代码有什么问题吗?
  • 您是否也知道一种更好的方法来检索实施导航属性的实体?

请给我一个代码谢谢的例子!

    public IEnumerable<CmsGroupsType> GetMostPopularContents()
    {
        using (var context = new CmsConnectionStringEntityDataModel())
        {
            context.CmsGroupsTypes.MergeOption = MergeOption.NoTracking;
            var contents = context.CmsGroupsTypes.Single(g => g.GroupTypeId == 1).CmsContents;
            return contents.ToList();                                         
        }
    }

Error   1   Cannot implicitly convert type 'System.Collections.Generic.List<WebProject.DataAccess.DatabaseModels.CmsContent>' to 'System.Collections.Generic.IEnumerable<WebProject.DataAccess.DatabaseModels.CmsGroupsType>'. An explicit conversion exists (are you missing a cast?)

2 个答案:

答案 0 :(得分:2)

通用类型不匹配:您的.ToList()属于CmsContent,但您的返回类型为IEnumerable CmsGroupsType。我不确定这是否是故意的,但将返回类型更改为IEnumerable<CmsContent>将使一切正常。

答案 1 :(得分:-3)

将您的退货类型从CmsGroupsType更改为WebProject.DataAccess.DatabaseModels.CmsContent