3

我有以下几点:Entity Framework 7迁移:如何获得长度大于1的varchar列?

[Table("Countries")] 
public class Country 
{ 
    public int CountryId { get; set; } 

    [MaxLength(255), Required] 
    public string CountryName { get; set; } 

    [Column(TypeName = "varchar")] 
    public string CountryCode { get; set; } 
} 

每次我申请我的迁移,COUNTRYCODE变成为1。最大长度我试过的MaxLength注释设置为255,仍然可以得到1一个最大长度VARCHAR列。当列设置为nvarchar时,它按预期工作。难道我做错了什么?

编辑:每当我明确设置字符串数据类型,长度集1。我可以使用的列(类型名=“nvarchar的”)且长度集作为1 ..

+0

尝试'[柱(类型名= “VARCHAR(255)”)]' – lad2025

+0

我试图太多。没有工作。仍然产生长度为1. – Rich76

+0

添加属性'[StringLength(250)]' – lad2025

回答

2

的喜欢的是有使用的数据注解,但我能得到它一起工作:

builder.Entity<Country>() 
      .Property(e = e.CountryCode).HasSqlServerColumnType("VARCHAR(30)"); 

数据注释尚未完全实体框架中实现7 ,您仍然可以添加注释到您的实体类,使他们其他框架(如ASP.NET MVC)使用的 ,bu t实体框架 将不处理这些注释。您可以跟踪对数据的支持 Annotations on GitHub

http://ef.readthedocs.org/en/latest/modeling/configuring.html

相关问题