当我尝试将列映射到模型类中的char数据类型时,我收到错误:
属性'[ColumnName]'不是 在'[ClassName]'类型上声明属性。 验证该属性尚未存在 明确地从模型中排除 使用忽略方法或 NotMappedAttribute数据注释。 确保它是有效的原语 属性。
EF Code First的有效基元类型是什么?
答案 0 :(得分:17)
这很有趣,但你真的无法映射char
属性。我刚刚检查了它,如果你想在数据库中有char(1)
,你必须使用string
属性并进行以下映射:
modelBuilder.Entity<MyEntity>()
.Property(p => p.MyProperty)
.HasMaxLength(1)
.IsFixedLength()
.IsUnicode(false);
这不仅是代码优先的问题。这是整个EF限制,因为EDMX设计器也不显示char
类型。我认为允许的类型与CSDL reference中针对EDMX描述的相同,因为代码首先只是围绕相同的映射基础结构。