[英]Lookup tables in Entity Framework 4.1 (the proper way) in C#
[英]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.