2

以下に示すエンティティフレームワークコードがあります。where条件で次のエラーが発生します。

デリゲート型ではないため、ラムダ式を型'bool'に変換できません

このエラーを克服する方法は?このエラーの理由は何ですか?

    static void Main(string[] args)
    {

        ClubCreation();
        List<Club> selectedClubs = GetClubs("club1");

    }

    public static void ClubCreation()
    {

        string connectionstring = "Data Source=.;Initial Catalog=NerdDinners;Integrated Security=True;Connect Timeout=30";
        using (var db = new NerdDinners(connectionstring))
        {

            Club club1 = new Club();
            club1.ClubName = "club1";

            Club club2 = new Club();
            club2.ClubName = "club2";

            Club club3 = new Club();
            club3.ClubName = "club3";

            db.Clubs.Add(club1);
            db.Clubs.Add(club2);
            db.Clubs.Add(club3);

            int recordsAffected = db.SaveChanges();


        }
    }

    public static List<Club> GetClubs(string clubName)
    {
        string connectionstring = "Data Source=.;Initial Catalog=NerdDinners;Integrated Security=True;Connect Timeout=30";
        using (var db = new NerdDinners(connectionstring))
        {

            Club club1 = new Club();
            Club club2 = new Club();
            Club club3 = new Club();


            var query = from o in db.Clubs
                        where (p => p.ClubName == "club1")
                        select o;

            return query.ToList();





        }
    }
4

5 に答える 5

8

使用する代わりにwhere (p => p.ClubName == "club1")

var query = from o in db.Clubs
            where  o.ClubName == "club1"
            select o;

次のようなメソッドチェーンと混同している可能性があります。

var query = db.Clubs.Where(p => p.ClubName == "club1");
于 2012-07-25T07:54:01.737 に答える
1
        var query = from o in db.Clubs
                    where o.ClubName == "club1"
                    select o;
于 2012-07-25T07:54:17.567 に答える
1

=>構文は、メソッドチェーン表記で使用されます。おそらく、のclubName代わりに変数を使用することもできます"club1"

var query = db.Clubs.Where (p => p.ClubName == clubName);

これはこれと同じことをします(これはあなたのクエリの正しい構文です):

var query = from o in db.Clubs
            where o.ClubName == clubName
            select o;
于 2012-07-25T07:55:55.603 に答える
1

私が試している間、asp mvc Razorで:

@if (modelItem => item.Id == 1)
 {

<span class="badge progressbar-success">Approved</span> 

 }

デリゲート型ではないため、ラムダ式を型'bool'に変換できません

解決:

@if (Model.FirstOrDefault().Id == 1)
{

<span class="badge progress-bar-success">Approved</span>

}

希望は誰かを助けます。

于 2016-01-21T10:46:25.287 に答える
0
var query = from o in db.Clubs
            where o.ClubName == "club1"
            select o;
于 2012-07-25T07:55:17.303 に答える