Je veux convertir la valeur de chaîne en heure de la date
Classe
public class demoDate
{
public DateTime DueDate;
public int OrderReportID;
public DateTime _DueDate
{
get { return DueDate; }
set { DueDate = value; }
}
public int _OrderReportID
{
get { return OrderReportID; }
set { OrderReportID = value;}
}
}
Requête
var DateQuery = (from o in db.Order_Reports
select new demoDate {
DueDate = System.DateTime.Parse(o.ReportDueDateTime),
OrderReportID = o.OrderReportID
}).ToList();
Ce code montre l'erreur suivante
LINQ to Entities ne reconnaît pas la méthode "System.DateTime Parse (System.String)" et cette méthode ne peut pas être traduite en une expression de magasin.
Vous devez d’abord matérialiser la requête (c’est-à-dire charger les données) dans votre application, puis l’analyser. Entity Framework ne sait pas exécuter les méthodes .Net (comme DateTime.Parse
), il sait seulement les traduire en SQL
var DateQuery = db.Order_Reports.ToList().Select(o => new demoDate
{
DueDate=DateTime.Parse(o.ReportDueDateTime),
OrderReportID= o.OrderReportID
});
Si vous avez besoin de le convertir avec SQL, vous pouvez essayer d’utiliser SqlFunctions.DateAdd et d’ajouter un intervalle nul.
var DateQuery = db.Order_Reports.Select(o => new demoDate {
DueDate = SqlFunctions.DateAdd("day", 0, o.ReportDueDateTime),
OrderReportID = o.OrderReportID
});
DateTime myDateTime = Convert.ToDateTime(DateTimePicker.Text);
var kayitVarmi = (from myfTable in db.tbl_myfTable
.
.
.
.
where
tbl_donemAyYil.donemAyYilKu == myDateTime