首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EntityFramework CodeFirst忽略MaxLength

EntityFramework CodeFirst忽略MaxLength
EN

Stack Overflow用户
提问于 2016-03-29 22:30:33
回答 1查看 444关注 0票数 0

我正在使用SQLServerCompact.com。对于每个表,我都有一个包含MaxLength属性的配置。

我运行,它正确地生成具有最大长度的create列字符串,但是当我运行Update-Database时,该列是用NVARCHAR(MAX)创建的。

代码语言:javascript
复制
public class Test{
    public string TestField { get; set; }
}

public class TestConfiguration : EntityTypeConfiguration<Test>
    {
        public TestConfiguration()
        {

            Property(o => o.TestField)
                .HasMaxLength(100);


        }
    }

My上下文类:

代码语言:javascript
复制
public class PlutoContext : DbContext
{
    public PlutoContext()
        : base("name=PlutoContext")
    {
        this.Configuration.LazyLoadingEnabled = false;
        Database.SetInitializer<PlutoContext>(null);
    }

    public virtual DbSet<Test> Tests { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Configurations.Add(new TestConfiguration());
    }

生成的迁移

代码语言:javascript
复制
public partial class AddTest : DbMigration
{
    public override void Up()
    {
        CreateTable(
            "dbo.Test",
            c => new
                {
                   Test = c.String(nullable: false, maxLength: 100),
    }

}

为什么框架不尊重MaxLength属性?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-06-21 12:12:16

请尝试在上下文的OnModelCreating部分中添加类似下面一行的内容:

代码语言:javascript
复制
modelBuilder.Configurations.Add(new TestConfiguration());
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36296264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档