簡體   English   中英

運行構造函數時,實體框架實體模型的值為空

[英]Entity Framework entity model's values empty when running constructor

我在我的項目中實現了POCO,該POCO代表數據庫表中的一行。 我想修改構造函數中的值之一。

不幸的是,似乎只有構造函數運行后才填充值,所以我無法執行所需的邏輯。 這是錯誤還是設計使然?

我可能應該提到我正在使用Code First。

public partial class CheckpointValue
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        [Column("saljare")]
        public int SalesAgentId { get; set; }

        [Column("volym")]
        public int Value { get; set; }

        [Column("datum")]
        public DateTime Date { get; set; }

        [Column("typ")]
        public string Type { get; set; }


        public CheckpointValue()
        {
            // Values empty... Why haven't they been populated when the constructor is run?
        }
    }

不幸的是,似乎只有在構造函數運行后才填充值,所以我無法執行所需的邏輯。 這是錯誤還是設計使然?

這是設計使然。 順便說一句,在不提供構造函數參數的情況下,如何能夠在構造期間填充這些屬性?

也許您試圖在錯誤的地方實現邏輯。 如果您正在尋找實施業務規則,域驗證或誰知道的知識,則應該在另一個類中完成。 例如, 您的存儲庫將是返回請求的對象之前執行操作的好地方。

public CheckpointValue GetById(Guid id)
{
      CheckpointValue checkpointValue = YourDbContext.CheckpointValues.Find(id);
      // Implement here what you wanted in your class constructor...
      return checkpointValue;
}

暫無
暫無

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

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