【发布时间】:2017-11-08 20:15:13
【问题描述】:
有两个简单的模型是一对多的关系。
public class UserModel
{
public int Id { get; set; }
public string FullName { get; set; }
public virtual ICollection<MessageModel> Messages { get; set; }
public UserModel()
{
Messages = new List<MessageModel>();
}
}
public class MessageModel
{
public MessageModel()
{
this.DateCreated = DateTime.Now;
}
[Display(Name = "Date Created")]
public DateTime DateCreated { get; set; }
public int Id { get; set; }
public string Text { get; set; }
public int? FromUserId { get; set; }
public UserModel FromUser { get; set; }
}
我想从 db 编写一个 linq 查询,我可以在其中通过用户 ID 获取所有消息项。 我已经尝试过类似的方法,但这不起作用。
UserModel userModel = db.UserModels.Where(x => x.Id == id(x.Messages)).ToList();
UserModel userModel = db.UserModels.Where(x => x.Id == id).Where(x => x.Messages).ToList();
我正在寻找一些决定或建议。
【问题讨论】:
-
更改您的第二个选择位置:db.UserModels.Where(x => x.Id == id).Select(x => x.Messages).ToList();
-
@Riv 谢谢,我试过了,但没用,我有一个红线错误“无法将类型 List
隐式转换为类型 UserModel”。
标签: .net asp.net-mvc linq linq-to-sql