在我的模型中,我有一些用 StringLength 属性装饰的实体:
[StringLength(128)]
public string FirstName { get; set; }
我还通过这种方式禁用所有字符串属性的 unicode:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Properties<string>().Configure(p => p.IsUnicode(false));
}
问题是,所有用上述属性修饰的字符串属性在生成数据库架构时都会忽略此设置,为相应的数据库列生成 nvarchar 数据类型。
在这种情况下禁用 unicode 的正确方法是什么?
似乎是新版本中的一个错误(或遗漏)PropertyConventionConfiguration
API。以下配置确实有效,因此可以作为解决方法:
modelBuilder.Properties<string>().Configure(x => x.HasColumnType("VARCHAR"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)