0

私はこのクエリを持っています(エンティティへのlinq):

var query = from p in dbContext.Students
                        where p.Type == "پیش ثبت نام" && p.Approved == false
                        select p;

ご覧のとおり、上記の条件ですべての学生を選択したいので、次のコードで結果を配列に変換したい:

string[] strNumbers = dbContext.Students.Where(p=>p.Type=="پیش ثبت نام" && p.Approved==false).ToArray();

しかし、上記のコードは機能しません:「型 'NoavaranModel.Student[]' を 'string[]' に暗黙的に変換できません」と、このコードを使用すると:

string[] strNumbers = dbContext.Students.Where(p=>p.Type=="پیش ثبت نام" && p.Approved==false).Cast<string>().ToArray();

次のエラーが表示されます:「型 'NoavaranModel.Student' を型 'System.String' にキャストできません。LINQ to Entities はエンティティ データ モデルのプリミティブ型のキャストのみをサポートします。」.

次に、strNumbers を以下の Methode に渡したい:

Utility.SendMessageForStudents(strNumbers);

アドバイスありがとうございます。

4

1 に答える 1

4

where句が返す学生オブジェクトの代わりに文字列を返す必要があります。select メソッドを使用して学生番号を選択できます。学生がStudentNumberを持っているとします

string[] strNumbers = dbContext.Students.Where(p=>p.Type=="پیش ثبت نام" && p.Approved==false).Select(c=>c.StudentNumber).ToArray();
于 2012-10-14T06:57:47.340 に答える