この LINQ クエリを作成するのに助けが必要です。これが私がやりたいことです - 私は 2 つのテーブルを持っています
Message
===
Name
MessageTypeID -> Foreign Key
Date
MessageType
===
ID **(the foreign key)
Name
私の Get API メソッドは、次の構造を持つ JSON オブジェクトを返します。
- List<MessageType>
- Name
- List<Message>
質問: messagetype オブジェクト内のメッセージのリストをフィルタリングして、今日より前の日付のメッセージのみを含めたいと思います。
私の最初の解決策は次のようにすることでした-しかし、それは最初のメッセージタイプオブジェクトを何度も返すだけです。
var mt = from m in db.MessageType
join l in db.Message on m.MessageTypeID equals l.MessageTypeID
where m.SenderID == id && l.Date < DateTime.Now
select m;
return mt.AsEnumerable();
次に、クエリの後に結合を削除してデータを削除しようとしましたが、例外が発生しました。
var myList = mt.ToList();
foreach (var mtype in myList)
{
foreach (var mess in mtype.LibMessages)
{
if (mess.VisibleEndDate < DateTime.Now)
{
// remove expired message.
mtype.LibMessages.Remove(mess);
}
}
}