Ich verwende Entity Framework. Ich habe 2 Tabellen: Unit
und Message
. Sie sehen wie folgt aus:Filterdatensatz auf JOIN basierend auf anderen Tabellenwerten
public class Unit
{
int id;
DateTime date;
}
public class Message
{
int id;
int unitId;
DateTime date;
}
ich jeden Unit
für jeden Message
beitreten möchten.
ich so etwas tun:
DateTime from = DateTime.Now;
db.Unit.Join(
db.Message.Where(m => m.date >= from),
u => u.id,
s => s.unitId,
(u, s) => new
{
MessageTime = s.date,
UnitTime = u.date
}
)
.AsEnumerable()
.Select(r => new
{
MessageTime = MessageTime,
UnitTime = UnitTime
}
)
.ToList()
Die Unit
Klasse enthält date
, die ich verwenden soll, wenn die Verbindung zu tun. Ich möchte nur die Nachrichten von Message
nehmen, die date
> = unit.date
hat. Ich weiß, dass ich .Where(x => x.UnitTime >= x.MessageTime)
tun kann, aber ich möchte nicht die Join und Filter danach machen.
Ist es möglich, basierend auf der anderen Tabelle zu filtern?
Das ist, was ich am Ende tatsächlich mit, danke! – Nikola