同じクエリは.Net 3.5では機能しましたが、.Net 4.5.2では機能しませんでした 同じエラーの記事がたくさんあります。つかいます。 私はすべてをクエリ用の別の変数に抽出しました。それでもエラーが表示される -LINQ to Entities - メソッドをストア式に変換することはできません
LINQ to Entitiesは、 'System.String Format(System.String、System.Object)'メソッドを認識せず、このメソッドをストア式に変換できません。
private void LoadAppointmentData()
{
var user = Session["user"].ToString();
var userFirstName = db.Users.SingleOrDefault(u => u.FirstName == user);
var userFN = userFirstName.username;
var chwWorker = from c in db.PatientContacts
where c.UserName == userFN &&
(c.PCP_Status == "Appointment Made" || c.PCP_Status_AWC == "Appointment Made"
|| c.PCP_Status_AWDV == "Appointment Made" ||
(c.PCP_Status == "RX for Mamogram" && c.Status == "Appointment Made"))
orderby c.PCP_Status_Date descending
select new
{
Id = c.MemberID,
Name = c.PatientFirstName + " " + c.PatientLastName,
PCP_Appt = $"{c.PCP_Status_Date:d}",
Mammogram_Appt = $"{c.StatusDate:d}",
Phone = GetPhone(c.MemberID)
};
if (chwWorker.Any())
{
if (grvAppointmentList != null)
{
pnlAppointmentFollowUp.Visible = true;
grvAppointmentList.DataSource = chwWorker;
grvAppointmentList.DataBind();
}
}
}
私は、このクエリの実行を行うために変更することが他に何かわかりません。
'$ "{c.PCP_Status_Date:D}が"' [ 'String.Format'ある](https://docs.microsoft.com/en-us/ dotnet/csharp/language-reference/keywords/interpolated-strings)を参照してください。私はあなたがエラーが何を意味するかを知っていると思います。 –
しかし、以前のバージョンでも同じように動作しました... – Ron
いいえ、string.Formatは、Entity Frameworkではサポートされていません。私は、SQLに変換できなかったLINQクエリの部分のクライアント側の評価に自動的に切り替えた.Net 3.5でLINQ-to-SQLを使用したと仮定します。 –