Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I am trying to select stores using a lambda function and converting the result to a SelectListItem so I can render it. However it is throwing a "Type of Expression in Select Clause is Incorrect" error:

IEnumerable<SelectListItem> stores =
    from store in database.Stores
    where store.CompanyID == curCompany.ID
    select (s => new SelectListItem { Value = s.ID, Text = s.Name} );
ViewBag.storeSelector = stores;

What am I doing wrong?

EDIT:

Also, how do I convert Int to String in this situation? The following does not work:

select (s => new SelectListItem { Value = s.ID.ToString(), Text = s.Name} );
select (s => new SelectListItem { Value = s.ID + "", Text = s.Name} );

EDIT 2:

Figure out the Int to String conversion. It is so typical of Microsoft to forget to include an int2string conversion function. Here is the actual workaround everyone is using, with fully working syntax:

select new SelectListItem { Value = SqlFunctions.StringConvert((double)store.ID), Text = store.Name };

To call this situation absurd is an understatement.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
111 views
Welcome To Ask or Share your Answers For Others

1 Answer

using LINQ query expression

 IEnumerable<SelectListItem> stores =
        from store in database.Stores
        where store.CompanyID == curCompany.ID
        select new SelectListItem { Value = store.Name, Text = store.ID };

 ViewBag.storeSelector = stores;

or using LINQ extension methods with lambda expressions

 IEnumerable<SelectListItem> stores = database.Stores
        .Where(store => store.CompanyID == curCompany.ID)
        .Select(store => new SelectListItem { Value = store.Name, Text = store.ID });

 ViewBag.storeSelector = stores;

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...