EF Core中的计算列错误映射

时间:2016-09-03 10:44:02

标签: .net entity-framework entity-framework-core

尝试在我的查询中使用Computed列,但似乎EF Core像任何其他列一样处理它,只是忽略映射。我有什么不对的吗?或者我误解了计算列的用法:S这几乎与文档使用的示例相同。

EF Core documentation

我在OnModelCreating中运行MapUsers(modelBuilder.Entity<User>());

映射:

private static void MapUsers(EntityTypeBuilder<User> entity)
{
    entity.Property(p => p.FullName)
          .HasComputedColumnSql("[FirstName] + ' ' + [LastName]");
    entity.ToTable("User");
}

这是生成的查询:

 SELECT [FirstName], [u].[FullName], [u].[LastName]
 FROM [User] AS [u]

通过使用此行而不是使用强类型属性

来管理以使其在查询中起作用
$"{u.FirstName} {u.LastName}".Contains(query)

1 个答案:

答案 0 :(得分:0)

有同样的困惑,结束了asking EF团队。

解释是您作为参数放置的SQL查询仅用于迁移。如果您正在使用数据库优先或根本不使用迁移,则不使用该参数。