网站后台无编辑器,网站开发项目范围说明书意义,云南网红景点,企业网站建设都能做哪些工作实体类与数据表的映射有一套专用的规则。Code First 采用的惯例优于预先设置的设计#xff0c;在没有任何设置的情况下#xff0c;自动检测模型结构并推导出默认设置以简化类的设计#xff0c;因此不需要特别设置类的属性即可完成模型设计。 例如#xff0c;当DbContext的模… 实体类与数据表的映射有一套专用的规则。Code First 采用的惯例优于预先设置的设计在没有任何设置的情况下自动检测模型结构并推导出默认设置以简化类的设计因此不需要特别设置类的属性即可完成模型设计。 例如当DbContext的模型类中定义了DbSetProduct属性时 按照惯例会以复数类名称为映射的数据表名称因为Product自动映射到Products数据表。
而Product中的属性则逐一映射到Products数据表中的同名数据字段比如Product类如下所示
public class Product
{public int Id {get;set;}public string Name {get;set;}public int Price {get;set;}public string Category {get;set;}
}
其中名称为Id的属性不区分大小写Id与ID效果相同自动成为主键类名Id的属性 名称同样会被推断为主键例如ProductId
EntityFramework同样会在映射过程中自动推导出类属性与数据字段的映射类型如下图所示
SQLServer 与.NET 数据类型SQL Server Database Engine type.NET Framework typeimage,timestampByte[]bigintInt64intInt32floatDoublebitBooleanchar,nchar,ntext,varchar,nvarchar,textString/Char[]date,datetime,datetime2DateTimedecimal,numeric,moneyDecimaltimeTimeSpanuniqueidentifierGuid
注意主键属性映射字段不允许为Null基本类型(比如int 类型)属性映射的字段也不允许是Null其他类型属性(比如string)映射的字段均允许是Null. Product类映射到数据库的表结构如下图所示 更多信息请参考微软MSDN官方说明EF微软官方文档 后续补充
一份更具体的数据类型与.NET类型匹配情况表SQL Server类型目录SQL Server类型.NET类型C# 关键字准确数字型bitsystem.Booleanbooltinyintsystem.Bytebytesmallintsystem.Int16shortintsystem.Int32intbigintsystem.Int64longsmallmoney、money、decimal、numericsystem.Decimaldecimal近似数字类型realsystem.Deciamlfloatfloatsystem.Doubledouble字符串类型char、varchar、textsystem.Stringstringnchar、varchar、ntextsystem.Stringstring二进制字符串类型binary、varbinarysystem.Byte[]byte[]imagesystem.Byte[]byte[]rowversion(timestamp)system.Byte[]byte[]日期类型datesystem.DateTime timesystem.TimeSpan small datetime、datetime、datetime2system.DateTime datetimeoffestsystem.DateTimeOffset 其他类型hierarchyidNo built-in mapping or support xmlsystem.Stringstringuniqueidentifiersystem.Guid sql_variantNo bulit-in mapping or support