使用导航属性的 MVC 代码优先
MVC Code First using Navigation Properties
这是一个简单的评论和消息系统。他们还有两个演员:FromActor 和 ToActor...我的代码是这样的:
public class Comment
{
public int Id { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public virtual Actor AboutActor { get; set; }
public virtual Actor FromActor { get; set; }
}
public class Message
{
public int Id { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public virtual Actor ToActor { get; set; }
public virtual Actor FromActor { get; set; }
}
public class Actor
{
public int Id { get; set; }
public string Username { get; set; }
public virtual List<Comment> Comments { get; set; }
public virtual List<Message> Messages { get; set; }
}
我遇到了代码优先导航道具的问题。是真的吗?我应该如何编辑解决方案的导航链接或模型?谢谢...
您应该在 Actor
class 添加对 Comment
和 Message
的额外引用,并使用 InversePropertyAttribute
将它们映射到相应的属性。也可以直接声明FK
s:
public class Comment
{
//other stuff...
public int AboutActorId { get; set; }
public int FromActorId { get; set; }
public virtual Actor AboutActor { get; set; }
public virtual Actor FromActor { get; set; }
}
public class Message
{
//other stuff...
public int ToActorId { get; set; }
public int FromActorId { get; set; }
public virtual Actor ToActor { get; set; }
public virtual Actor FromActor { get; set; }
}
public class Actor
{
public int Id { get; set; }
public string Username { get; set; }
[InverseProperty("AboutActor")]
public virtual ICollection<Comment> CommentsAbout { get; set; }
[InverseProperty("FromActor")]
public virtual ICollection<Comment> CommentsFrom { get; set; }
[InverseProperty("ToActor")]
public virtual ICollection<Message> MessagesTo { get; set; }
[InverseProperty("FromActor")]
public virtual ICollection<Message> MessagesFrom { get; set; }
}
这是一个简单的评论和消息系统。他们还有两个演员:FromActor 和 ToActor...我的代码是这样的:
public class Comment
{
public int Id { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public virtual Actor AboutActor { get; set; }
public virtual Actor FromActor { get; set; }
}
public class Message
{
public int Id { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public virtual Actor ToActor { get; set; }
public virtual Actor FromActor { get; set; }
}
public class Actor
{
public int Id { get; set; }
public string Username { get; set; }
public virtual List<Comment> Comments { get; set; }
public virtual List<Message> Messages { get; set; }
}
我遇到了代码优先导航道具的问题。是真的吗?我应该如何编辑解决方案的导航链接或模型?谢谢...
您应该在 Actor
class 添加对 Comment
和 Message
的额外引用,并使用 InversePropertyAttribute
将它们映射到相应的属性。也可以直接声明FK
s:
public class Comment
{
//other stuff...
public int AboutActorId { get; set; }
public int FromActorId { get; set; }
public virtual Actor AboutActor { get; set; }
public virtual Actor FromActor { get; set; }
}
public class Message
{
//other stuff...
public int ToActorId { get; set; }
public int FromActorId { get; set; }
public virtual Actor ToActor { get; set; }
public virtual Actor FromActor { get; set; }
}
public class Actor
{
public int Id { get; set; }
public string Username { get; set; }
[InverseProperty("AboutActor")]
public virtual ICollection<Comment> CommentsAbout { get; set; }
[InverseProperty("FromActor")]
public virtual ICollection<Comment> CommentsFrom { get; set; }
[InverseProperty("ToActor")]
public virtual ICollection<Message> MessagesTo { get; set; }
[InverseProperty("FromActor")]
public virtual ICollection<Message> MessagesFrom { get; set; }
}