C# · 12月 31, 2021

c# – 实体框架代码中有效的原始属性是什么?

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

The property ‘[ColumnName]’ is not a
declared property on type ‘[ClassName]’.
Verify that the property has not been
explicitly excluded from the model by
using the Ignore method or
NotMappedAttribute data annotation.
Make sure that it is a valid primitive
property.

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

解决方法 这很有趣,但你真的不能映射char属性.我只是检查它,如果你想在数据库中有char(1),你必须使用带有以下映射的字符串属性: modelBuilder.Entity<MyEntity>() .Property(p => p.MyProperty) .HasMaxLength(1) .IsFixedLength() .IsUnicode(false);

这不仅仅是Code-first的问题.这是整个EF限制,因为EDMX设计师也不显示字符类型.我认为允许的类型将与EDMX的CSDL reference中所述相同,因为代码首先只是围绕相同的映射基础设施进行包装.