繁体   English   中英

实体框架无法读取计算列的更改

[英]Entity Framework not able to read changes for Computed columns

我正在使用Entity Framewirk 4和SQL Server 2008的应用程序上工作,我正在从WCF Rest服务调用代码。 当我使用该服务在数据库中添加一条新记录并在同一会话中针对该记录查询数据库时,它会向我返回所有信息,但在可为空的计算列中的信息除外,但是如果我在新记录中执行相同的查询会议,它会退还我一切。

计算列的定义是

[ComputedColumn] AS(dateadd(分钟,[OffsetMinutes],[ActualTimeUTC]))

请对此有所启发。

谢谢

当我使用该服务在数据库中添加新记录时

如果这样做,它应该已经在当前实体实例中为您填充了计算数据。 您只需要先将该列标记为通过代码计算即可:

modelBuilder.Entity<YourEntity>()
            .Propety(e => e.YourComputedProperty)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);

或数据注释

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]

通过StoreGeneratedPatternEDMX中

在针对该记录查询数据库的同一会话中,它向我返回所有信息,但在可为空的计算列中的信息除外

由于身份映射,它将返回上下文已知的当前状态。 EF不会真正从数据库中再次加载数据(即使它执行查询),除非您强迫它这样做。 默认情况下,它使用已经存储在上下文中的数据-您插入的数据。

要强制重新加载,您可以例如执行以下操作:

context.Entry(yourEntityToBeReloaded).Reload();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM