[英]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.