我有这个查询(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);
感谢您的建议。
答案 0 :(得分:4)
您必须返回字符串而不是where子句返回的student对象。您可以使用选择方法选择学号。假设学生有StudentNumber
string[] strNumbers = dbContext.Students.Where(p=>p.Type=="پیش ثبت نام" && p.Approved==false).Select(c=>c.StudentNumber).ToArray();