2012-03-06 5 views
0
var menuQuery = repository.MenuMasters.OrderBy(c => c.Position).Select(c => new { ID = c.MenuMasterID, Position = (MenuItemPosition)c.Position + " - " + c.SitePage.Title }); 
ViewBag.ParentID = new SelectList(menuQuery, "ID", "Position", selectedParentId); 


public int Position { get; set; } 
    public MenuItemPosition MenuPosition { 
     get { return (MenuItemPosition)Position; } 
     set { Position = (int)value; } 
    } 

public enum MenuItemPosition { 
    Top = 1, Main = 2, Footer = 3 
} 

「タイプ 'タイプ名'にタイプ 'タイプ名'をキャストできません.LINQ to Entitiesはキャストエンティティデータモデルプリミティブタイプのみをサポートしています。新しいリストの列挙型を選択するにはどうすればいいですか?

MenuItemPositionは "列挙型" で、タイトルは私がこれをどのように修正することができます

"文字列" とは?多くのありがとう〜!

答えて

0

..私はあなたが文字列の連結は、エンティティへのLINQでサポートされていないため、[並べ替え後.ToListを追加する必要があると思う

var menuQuery = repository.MenuMasters.OrderBy(c => c.Position).Select(c => new { ID = c.MenuMasterID, Position = c.Position.ToString() + " - " + c.SitePage.Title }); 
+0

c.Positionは整数で、列挙型の値を表します。 –

+0

実際に列挙型の名前は何にしたいですか?列挙型であなたの質問を更新できますか? – Jayanga

1

のようなものを試してみてくださいだからあなたのクエリは次のようになります:

var menuQuery = repository.MenuMasters.OrderBy(c => c.Position).ToList().Select(c => new { ID = c.MenuMasterID, Position = ((MenuItemPosition)c.Position).convertToString() + " - " + c.SitePage.Title }); 
関連する問題