Entity Framework Code First中有效的原始属性是什么?

Rya*_*yan 11 c# entity-framework

当我尝试将列映射到我的模型类中的char数据类型时,我收到一个错误:

属性'[ColumnName]'不是'[ClassName]'类型的声明属性.使用Ignore方法或NotMappedAttribute数据批注验证是否未从模型中显式排除该属性.确保它是有效的原始属性.

EF Code First的有效原始类型是什么?

Lad*_*nka 18

这很有趣,但你真的无法映射char属性.我只是检查了它,如果你想拥有char(1)数据库,你必须使用string具有以下映射的属性:

modelBuilder.Entity<MyEntity>()
            .Property(p => p.MyProperty)
            .HasMaxLength(1)
            .IsFixedLength()
            .IsUnicode(false);
Run Code Online (Sandbox Code Playgroud)

它不仅是代码优先的问题.这是整个EF的限制,因为EDMX设计师也没有显示char类型.我认为允许的类型与EDMX的CSDL参考中描述的相同,因为代码首先只是围绕相同的映射基础结构.