【问题标题】:What happened to HasColumnName for EF Core?EF Core 的 HasColumnName 发生了什么?
【发布时间】:2018-01-14 03:57:31
【问题描述】:

所以我试图将一个内部属性映射到我的数据库,根据这个article online,这就是你应该这样做的方式。我发现的其他资源也告诉我做同样的事情。无论出于何种原因,该方法不存在,我也无法在网上找到他们将其重命名的内容,或者他们是否只是删除了该方法。

这是我的代码:

public class Criteria : DbEntity
{

    internal string _Condition { get; set; }

    [NotMapped]
    public Condition Condition 
    {
        get
        {
            return string.IsNullOrEmpty(_Condition) ? null : JsonConvert.DeserializeObject<Condition>(_Condition);
        }
        set
        {
            _Condition = JsonConvert.SerializeObject(value);
        }
    }

}

protected override void OnModelCreating(ModelBuilder builder)
{
    builder.Entity<Criteria>().Property(b => b._Condition);//.HasColumnName("Condition"); <-- this doesn't exist...
}

【问题讨论】:

  • 你添加了 using 指令using Microsoft.EntityFrameworkCore 吗?
  • 我已经在用了
  • 您的代码看起来不错。你能建立并发布一个小的、完整的复制品吗?
  • 确保引用Microsoft.EntityFrameworkCore.Relational 程序集。
  • 天哪。我也有这个问题,我正在使用 Scaffold-DbContext 并且无法生成有效的上下文模型。 .HasDefaultValueSql()、.HasColumnType()、.HasContstraintName() 存在问题。我已经尝试过 VS2017 和 CLI。正如@IvanStoev 指出的那样,我尝试使用 .Relational ,但没有运气。暂时不需要这样做,现在一整天都在尝试不同的部分。

标签: c# entity-framework ef-code-first entity-framework-core


【解决方案1】:

必须安装Microsoft.EntityFrameworkCore.Relational 才能解决此问题。

编辑: 感谢 Ivan Stoev 发现这一点

【讨论】:

  • 完美!在那里为我省去了一大堆麻烦。为分享老兄干杯。
  • 太棒了,你救了我的命
  • 现在它是 Microsoft.EntytyFramework 命名空间的一部分
  • @DioBrando 我现在正在尝试使用它,我能够让它工作的唯一方法是添加关系包......
【解决方案2】:

如果您使用 SQL Server 并使用 Core 3.1x,您也可以通过安装 Microsoft.EntityFrameworkCore.SqlServer 来解决此问题。

【讨论】:

    猜你喜欢
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2021-08-19
    • 1970-01-01
    • 2016-02-28
    • 2014-02-28
    相关资源
    最近更新 更多