我正在使用实体框架代码首先,我有一个使用StartTime
属性,EndTime
属性和Duration
属性(以及其他一些属性)定义的实体。 Duration
属性是一个计算字段,它是开始和结束时间之间的持续时间(分钟)。我的属性声明如下:使用实体框架存储只读计算字段代码优先
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
public int Duration
{
get
{
return (int)this.EndTime.Subtract(this.StartTime).TotalMinutes;
}
}
我想运行这个计算的代码,但具有持续时间值保存到数据库与起始和结束时间值一起(以方便以后的路线当我来运行报告反对这些数字)。
我的问题是,我怎么能得到这个只读属性映射回来,并保存到数据库中使用代码第一?
啊,好主意,以它的保护!你是否也试图让制定者为“私人”?知道EF是否会将该属性映射到数据库列会很有趣。 – Slauma 2011-04-14 14:05:09
我刚刚尝试过一个“私人”制定者,并且令人惊讶的是它继续工作! – KevB 2011-04-14 15:02:27
EF每次加载此实体时都会更新数据库。我们猜测EF的变更跟踪错误地认为这个属性已经改变。对我们来说,这会导致意外的并发冲突。 – 2012-12-05 23:33:49