2011-08-02 95 views
1

Linq和EF。Linq使用Navigational屬性檢索實體

我很新,所以我有一些問題來檢索實體使用Navigational屬性(CmsContents)。 我可以作爲列表返回,但不能作爲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

泛型類型不匹配:您.ToList()CmsContent,但你的返回類型的CmsGroupsTypeIEnumerable。我不確定這是否是故意的,但將返回類型更改爲IEnumerable<CmsContent>將使一切正常。

+0

謝謝,我知道我知道對返回式監督更改您的返回類型。感謝您的幫助! – GibboK

-3

CmsGroupsTypeWebProject.DataAccess.DatabaseModels.CmsContent

+0

'List'是'IEnumerable'。 – StriplingWarrior

+0

@StriplingWorrior,是的抱歉,我的意思是從CmsGroupsType到CmsContent – Jethro