Dar*_*ght 3 c# asp.net-mvc entity-framework ef-code-first
我正在使用Entity Framework 6开发代码优先数据库.
我知道我可以设置[MaxLength(myLen)]模型的属性.
我想知道的是,如果可以在过滤器或自定义属性中执行此操作,那么所有字符串都采用默认值,即250,除非直接在属性上指定.
如果做不到这个,有没有办法改变默认值nvarchar(max)?
实体框架在6.1中为此引入了自定义代码优先约定
modelBuilder.Properties<string>()
.Configure(c => c.HasMaxLength(250));
Run Code Online (Sandbox Code Playgroud)
约定以最后的方式运行,Fluent API和Data Annotations可用于在特定情况下覆盖约定
您可以这样做,这可以确保所有字符串都是数据库提供程序支持的最大长度:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Properties<string>().Configure(p => p.IsMaxLength());
}
Run Code Online (Sandbox Code Playgroud)
在您的DbContext类中添加此方法(或修改现有方法).
| 归档时间: |
|
| 查看次数: |
6450 次 |
| 最近记录: |