Ich habe meine EF-Modell wie folgt aus:Parameter in Konstruktoren für LINQ to Entities
public class foo
{
private static TimeZoneInfo INDIAN_ZONE = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
DateTime indianTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, INDIAN_ZONE);
testData tD;
public foo(testData localtD)
{
this.tD = localtD;
}
public String Name {
get { return tD.Name; }
set { }
}
public Double dueInDays {
get { return (indianTime - tD.StartDate).TotalDays; }
set { } }
}
und meine API-Methode
[Route("api/getSingleData")]
[HttpGet]
public dynamic getTestData()
{
var dataset2 = (from recordset in db.testDatas
select new foo(recordset)
);
return new { data = dataset2 };
}
in db.testDatas
ist ich habe Datumsfeld, und ich will den Unterschied zurück zwischen dem aktuellen Datum und dem Startdatum.
Diese Datenbank ist mehr oder weniger abgeschlossen und ich kann keine Änderungen vornehmen, damit diese Anforderung auf der DB-Abfrageebene erfüllt wird. Was ist der grundlegende Fehler, die ich
für den Fehler macheNur parameterlos Bauer und initializers unterstützt werden in LINQ to Entities
Popup?
Und noch wichtiger, wie soll ich den Code ändern, um die Anforderung zu erfüllen?
Danke.
Es sagt Ihnen genau, was das Problem ist. 'class foo' muss nur einen parameterlosen Konstruktor verwenden. –
wahr. Was ist der Ausweg um dies zu erreichen? –
Entfernen Sie den Parameter aus dem Konstruktor, und verwenden Sie stattdessen die Syntax der Objektinitialisierung. –