微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未将对象引用设置为.net Core中的对象实例

如何解决未将对象引用设置为.net Core中的对象实例

我有两个模型类;

  public class MessageDetailModel
{
    [Key]
    public int messageDetailsId { get; set; }
    public MessageModel messageModel { get; set; }
    public string detail { get; set; }
    public int senderId { get; set; }
    public int customerId { get; set; }
    public string phone { get; set; }
    public DateTime date { get; set; }
 
}

public class MessageModel
{
    [Key]
    public int messageId { get; set; }
    public int senderId { get; set; } 
    public int customId { get; set; }
    public bool ReadInfo { get; set; }
    public  virtual List<MessageDetailModel> MessageDetails { get; set; }
}

这是我的上下文类;

 public virtual DbSet<MessageDetailModel> messageDetails { get; set; }
    public virtual DbSet<MessageModel> messages { get; set; }
    public virtual DbSet<PersonModel> persons { get; set; }
    public virtual DbSet<DirectoryModel> directory { get; set; }

我试图通过MessageDetailModel获取messageId,但是messageId返回0,并且出现错误“对象引用未设置为对象的实例”

 Console.WriteLine(k.messageModel.messageId); //( k is my var which gets from messagedetail model)

我如何通过MessadeDetailModel到达messageId

解决方法

您的两个模型之间没有当前链接可以表示外键。

如果要让外键链接到相关对象,则需要对模型执行以下操作:

public class MessageDetailModel
{
    [Key]
    public int messageDetailsId { get; set; }
    [ForeignKey("messageId")] // Added Data Annotation for the Foreign Key relationship
    public MessageModel messageModel { get; set; }
    public string detail { get; set; }
    public int senderId { get; set; }
    public int customerId { get; set; }
    public string phone { get; set; }
    public DateTime date { get; set; }
    public int messageId { get; set; } // This would be your Foreign Key
}

我已将messageId列添加到MessageDetailModel中,以匹配MessageModel的主键列,这是形成链接所必需的。

您将使用[ForeignKey("messageId")]变量上方的MessageModel数据注释来确定查找所需对象时需要使用的值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。