【问题标题】:How to map SQL Server text column with Entity Framework Core 2.0 Model property如何使用 Entity Framework Core 2.0 模型属性映射 SQL Server 文本列
【发布时间】:2018-05-20 09:40:54
【问题描述】:

我正在使用 Entity Framework Core 2.0 和 SQL Server 2016。我有一个映射 SQL Server 表的 .cs 类模型。我可以在 SQL Server 文本列中插入长字符串,但我无法使用此模型获取该列,它返回 null 并出现错误:

对象引用对象引用未设置为对象实例

保存数据的模型属性是字符串类型。任何想法如何使用 Entity Framework Core 2.0 映射 SQL Server 文本列?

【问题讨论】:

  • ntexttextimage 数据类型将在 SQL Server 的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)varchar(max)varbinary(max)See details here
  • 感谢您的回复。我将文本字段更改为 nvarchar(max)。现在我也可以插入数据了,但是当得到它说“对象引用对象引用未设置为对象实例”时,它返回 null,但数据已正确插入。
  • 请为您的问题准备一份简短、完整的复制品。当你这样做时,你可能会发现问题。如果没有,请将其发布在您的问题中。

标签: sql entity-framework entity-framework-core


【解决方案1】:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Blog>(eb =>
    {
        eb.Property(b => b.Url).HasColumnType("ntext");
        eb.Property(b => b.ModernUrl).HasColumnType("nvarchar(MAX)");
    });
}

https://docs.microsoft.com/en-us/ef/core/modeling/relational/data-types

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 2019-05-31
    • 1970-01-01
    • 2017-10-19
    • 2018-06-19
    • 1970-01-01
    • 2017-08-26
    相关资源
    最近更新 更多