![](/img/trans.png)
[英]Is it correct to assign values in a model's constructor in Entity Framework's Code-First approach?
[英]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.