繁体   English   中英

使用C#Entity Framework控制我传递到表中的数据类型的方法

[英]Way to have control over what data type I pass into my tables using C# Entity Framework

我正在使用代码优先实体框架从对象创建SQL数据库中的表。 我想控制我的变量在SQL表中的类型。

例如,我有一个带有CountryName列的表。 目前,它的数据类型为nvarchar(MAX)。 我希望数据类型为nvarchar(40)以节省内存。

我可以在SSMS中手动执行此操作,但是我需要花几个小时才能为所有表格执行此操作。 我正在寻找一种在代码中执行此操作的方法。

提前致谢!

编辑:我也想控制我的数据类型是否可以接受NULL。 所以,我想将我的所有数据类型(例如,int,nvarchar,DateTime)更改为不接受NULL。

您可以使用DataAnnotations ,以便指定类似的内容。 具体来说,在您提到的情况下,您需要使用名为MaxLength的属性:

[MaxLength(40)]
public string CountryName { get; set; }

您可以使用DataAnnotations配置模型。 要将长度设置为40,您可以将属性MaxLength应用于属性。

[MaxLength(40)]

或者,当您的问题要求在代码中执行此操作时,您将覆盖OnModelCreating中的OnModelCreating并使用Fluent API配置模型。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    //Configure domain classes using modelBuilder here

    base.OnModelCreating(modelBuilder);
    modelBuilder.Entity<Student>()
                .Property(p => p.CountryName)
                .HasMaxLength(40);
}

浏览以下教程中的所有页面,了解在模式下配置属性的所有不同方法。 http://www.entityframeworktutorial.net/code-first/fluent-api-in-code-first.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM