您可以告訴實體框架爲特定類型的每個字段添加額外的字段嗎?例如:是否有可能生成用於在模型中定義的每個布爾字段ChangedAt日期時間字段,所以這個實體框架可以使用日期時間字段自動擴展模型以保持更改日期
public bool Confirmed { get; set; }
可能導致一個表,其中值每次更新的布爾值的附加字段ConfirmedChangedAt
被改變。
您可以告訴實體框架爲特定類型的每個字段添加額外的字段嗎?例如:是否有可能生成用於在模型中定義的每個布爾字段ChangedAt日期時間字段,所以這個實體框架可以使用日期時間字段自動擴展模型以保持更改日期
public bool Confirmed { get; set; }
可能導致一個表,其中值每次更新的布爾值的附加字段ConfirmedChangedAt
被改變。
明確回答沒有。 但是這取決於你如何與EF交互(代碼優先,模型優先,數據庫優先)。 如果使用EF 6和代碼第一種方法,你可以使用基實體類
public class BaseEntity
{
public DateTime ChangedAt {get;set;}
}
public class ConcreteEntity : BaseEntity
{
public string Name {get;set;}
}
現在ConcreteEntity具有ChangedAt通過繼承的想法。 如果此解決方案不適合您,請詳細解釋問題。
通常這樣的行爲應該直接實現到您的業務邏輯中,而不是自動進入數據層。因此,我建議寫這樣的事:
// entity
public class Order
{
public bool Confirmed { get; set; }
public DateTime? ConfirmedAt { get; set; }
}
// business logic
public class OrderManager
{
.................
public void Confirm(Order order)
{
// changing of entity status
order.Confirmed = true;
order.ConfirmedAt = DateTime.Now;
// storing new entity status
_orderRepository.Update(order);
................
}
}
這不是問題。 – 2015-03-04 20:49:09
我想,如果我理解正確的話,你期待的實體框架能夠自動列添加到數據庫中,這樣你就不必添加它們手動,那麼你有兩種情況:
OP希望爲每列Bla添加列BlaChangedAt,並自動加上它。所以我會說「答案是否定的」。 – abatishchev 2015-03-04 19:23:44