假设有一个类似的实体结构:
class Conversation
{
[Key]
public long Id { get; set; }
public long CreatorId { get; set; }
public long RecipientId { get; set; }
public IQueryable<Message> Messages { get; set; }
// Populate this with the most recent sent/received message:
public Message LastMessage { get; set; }
}
class Message
{
[Key]
public long Id { get; set; }
public long SenderId { get; set; }
public string Body { get; set; }
[ForeignKey("Conversation")]
public long ConversationId { get; set; }
public Conversation Conversation { get; set; }
}
能填吗
LastMessage
有关于那个对话的最新消息吗?这个
Message
将映射到
Conversation
与
ConversationId
外键。
如果这是不可能的,是否可以使用类似的对话实体?
class Conversation
{
[Key]
public long Id { get; set; }
public long CreatorId { get; set; }
public long RecipientId { get; set; }
[ForeignKey("ConversationId")]
public IQueryable<Message> Messages { get; set; }
// Populate these fields with the respective values from the most recent message:
public long LastMessageSenderId { get; set; }
public string LastMessageBody { get; set; }
}
这里的主要内容是将所有这些结果包括在一个
SELECT
查询,不必访问
Messages
在检索到初始结果之后,因为这将全部存在于许多对话的列表中。
谢谢!