使用实体框架代码优先创建文本列[重复]

Posted

技术标签:

【中文标题】使用实体框架代码优先创建文本列[重复]【英文标题】:create text column with Entity Framework Code First [duplicate] 【发布时间】:2013-12-02 18:45:08 【问题描述】:

如何创建 TEXT 而不是 NVARCHAR 的字段?现在我有

public string Text  get; set; 

但这总是变成一个 nvarchar 列,我需要一个 Text 列

【问题讨论】:

有很多不同的方法可以做到这一点。您当前配置列存储类型的方法是什么?您在使用模型构建器吗?英孚迁移?属性? 我刚开始接触 c# 和 .net。我知道如何使用 EF 迁移是的。难道没有任何类型的注释可以放在使其成为 TEXT 列的属性上吗? 见这里:***.com/a/4913615/328123 编辑:或莫霍的回答:) 【参考方案1】:

您可以使用System.ComponentModel.DataAnnotations.Schema.ColumnAttribute

[Column(TypeName = "text")]
public string Text  get; set; 

或通过 Fluent API:

modelBuilder.Entity<YourEntityTypeHere>()
    .Property( e => e.Text)
    .HasColumnType( "text" );

【讨论】:

哪个更好,为什么? @OchiFortune 第一个是在类定义中包含注释,第二个是在迁移文件中指定这些属性。

以上是关于使用实体框架代码优先创建文本列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

实体框架代码优先:在具有不同连接列的实体中展平组合

如何使用带有代码优先实体框架的 UnitOfWork 模式防止重复条目?

实体框架 4.1 代码优先外键 ID

使用实体框架 6 代码优先方法时,在程序集中未找到上下文类型 [重复]

如何从实体框架中的存储过程中获取结果+数据库优先

实体框架代码优先:共享主键