我有这个模型:
public class Teacher
{
public int TeacherID { get; set; }
public string Name { get; set: }
public string Surname{ get; set; }
}
在首次运行模型时,它将创建我的Teachers表和DbSet,但是对于Name和Surname(它们是字符串),它将NCLOB类型分配给该列。
现在,使用NCLOB类型,我无法在表上执行某些操作,例如等于或不重复...。
如何强制MF将columntype设置为varchar?
最佳答案
我设法解决了在模型中设置最大字符串长度的问题
public class Teacher
{
public int TeacherID { get; set; }
[StringLength(255, MinimumLength = 3, ErrorMessage = "My Error Message")]
public string Name { get; set: }
[StringLength(255, MinimumLength = 3, ErrorMessage = "My Error Message")]
public string Surname{ get; set; }
}
如果没有StringLength,则Orcale将创建一个NCLOB字段,该字段最多可包含4Gb数据。
注意:varchar的最大长度为4000个字节,因此我们不能将MaximumLenght设置为2000个以上(Unicode每个字符2个字节)
关于oracle - Entity Framework 和字符串作为Oracle Db中的CLOB,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27525078/