var result =
(from bd in context.tblBasicDetails
from pd in context.tblPersonalDetails.Where(x => x.UserId == bd.UserId).DefaultIfEmpty()
from opd in context.tblOtherPersonalDetails.Where(x => x.UserId == bd.UserId).DefaultIfEmpty()
select new clsProfileDate()
{
DOB = pd.DOB
});
foreach (clsProfileDate prod in result)
{
prod.dtDOB = !string.IsNullOrEmpty(prod.DOB) ? Convert.ToDateTime(prod.DOB) : DateTime.Today;
int now = int.Parse(DateTime.Today.ToString("yyyyMMdd"));
int dob = int.Parse(prod.dtDOB.ToString("yyyyMMdd"));
string dif = (now - dob).ToString();
string age = "0";
if (dif.Length > 4)
age = dif.Substring(0, dif.Length - 4);
prod.Age = Convert.ToInt32(age);
}
GetFinalResult(result);
protected void GetFinalResult(IQueryable<clsProfileDate> result)
{
int from;
bool bfrom = Int32.TryParse(ddlAgeFrom.SelectedValue, out from);
int to;
bool bto = Int32.TryParse(ddlAgeTo.SelectedValue, out to);
result = result.AsQueryable().Where(p => p.Age >= from);
}
Hier bekomme ich eine Ausnahme:
Das angegebene Typmitglied "Alter" wird in LINQ to Entities nicht unterstützt. Es werden nur Initialisierer, Entitätsmitglieder und Entitätsnavigationseigenschaften unterstützt.
Wenn sich das Alter nicht in der Datenbank befindet, ist es eine Eigenschaft, die ich in der Klasse clsProfileDate erstellt habe, um das Alter aus dem Geburtsdatum zu berechnen. Irgendeine Lösung dafür?
from a in db.aitems select new Model { A = a.A }
Hier in dieser Abfrage können Sie genau alle Eigenschaften angeben, die Sie verwenden möchtenWhere
, damit Sie hier filtern oder gruppieren oder nur nach A sortieren können, da Sie nur eine Zuordnung für A -A = a.A