簡體   English   中英

未將對象引用設置為 .net core 中的對象實例

[英]Object reference not set to an instance of an object in .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 的主鍵列,因為這是形成鏈接所必需的。

您將使用MessageModel變量上方的[ForeignKey("messageId")]數據注釋來確定在查找所需對象時需要使用的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM