无法将类型'NoavaranModel.Student []'隐式转换为'string []'

时间:2012-10-14 06:54:29

标签: c# asp.net linq-to-entities

我有这个查询(linq to entity):

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);

感谢您的建议。

1 个答案:

答案 0 :(得分:4)

您必须返回字符串而不是where子句返回的student对象。您可以使用选择方法选择学号。假设学生有StudentNumber

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