Entity framework 首先使用EF代码生成具有特殊SQL数据类型的列的表

Entity framework 首先使用EF代码生成具有特殊SQL数据类型的列的表,entity-framework,data-annotations,fluent-interface,Entity Framework,Data Annotations,Fluent Interface,我想知道在通过代码优先生成数据库时,是否可能(通过Fluent Api或数据注释)将属性映射为位、层次ID、sql_变量、系统名、表或时间戳。实际上,对我来说最重要的是sysname,我只是对其余的好奇。有人这样做过吗?感谢阅读,我会说不。没有任何CLR类型等同于sysname SQL类型 我还尝试了.HasColumnType(“sysname”),但没有成功,因为非原语类型名缺少命名空间。但由于CLR中没有关于sysname的内容,因此我没有提供名称空间 表单中可以看到sysname是nva

我想知道在通过代码优先生成数据库时,是否可能(通过Fluent Api或数据注释)将属性映射为位、层次ID、sql_变量、系统名、表或时间戳。实际上,对我来说最重要的是sysname,我只是对其余的好奇。有人这样做过吗?感谢阅读,我会说不。没有任何CLR类型等同于sysname SQL类型

我还尝试了
.HasColumnType(“sysname”)
,但没有成功,因为非原语类型名缺少命名空间。但由于CLR中没有关于sysname的内容,因此我没有提供名称空间

表单中可以看到sysname是
nvarchar(128)notnull

希望这有助于

阅读我会说不。没有CLR类型等同于sysname SQL类型

我还尝试了
.HasColumnType(“sysname”)
,但没有成功,因为非原语类型名缺少命名空间。但由于CLR中没有关于sysname的内容,因此我没有提供名称空间

表单中可以看到sysname是
nvarchar(128)notnull


希望这有帮助

我只是不好意思地重复了3年前的经验方法

我得到的数据类型可以通过
从sys.systypes中选择名称
放入表中:

bigint
二元的
一点
烧焦
日期
日期时间
日期时间2
日期时间偏移
十进制的
浮动
地理
几何学
等级的
形象
int
钱
固定长度
内文
数字的
nvarchar
真实的
smalldatetime
短整型
货币型
sql_变体
系统名
文本
时间
时间戳
锡
唯一标识符
可变长度
瓦尔查尔
xml
(请注意,
sysname
在其中,但
不在其中)

我用entity framework power tools(beta 3,EF 6.0.0 alpha-3)反向设计了一个包含这些类型的表,得到了以下结果:

public分部类AllType{
公共int Id{get;set;}
公共可空bigint{get;set;}
公共字节[]二进制{get;set;}
公共可空位{get;set;}
公共字符串@char{get;set;}
公共可空日期{get;set;}
公共可为空的日期时间{get;set;}
公共可为空的datetime2{get;set;}
公共可为空的datetimeoffset{get;set;}
公共可空@decimal{get;set;}
公共可空@float{get;set;}
public System.Data.Entity.Spatial.DbGeography{get;set;}
public System.Data.Entity.Spatial.DbGeometry{get;set;}
公共字节[]映像{get;set;}
公共可空@int{get;set;}
公共可空货币{get;set;}
公共字符串nchar{get;set;}
公共字符串ntext{get;set;}
公共可空数字{get;set;}
公共字符串nvarchar{get;set;}
公共可空实数{get;set;}
公共可空smalldatetime{get;set;}
公共可为空的smallint{get;set;}
公共可为空的smallmoney{get;set;}
公共字符串sysname{get;set;}
公共字符串文本{get;set;}
公共可空时间{get;set;}
公共字节[]时间戳{get;set;}
公共可空tinyint{get;set;}
公共可为空的唯一标识符{get;set;}
公共字节[]varbinary{get;set;}
公共字符串varchar{get;set;}
公共字符串xml{get;set;}}
您可以看到,目前不支持这些类型:

hierarchyid
sql_variant
当然还有
,因为它首先不是一种列数据类型


好吧,这是补充tschmit007更聪明答案的愚蠢方法,因为我和你一样,只是好奇。

我只是不好意思地重复了3年前的经验方法

我得到的数据类型可以通过
从sys.systypes中选择名称
放入表中:

bigint
二元的
一点
烧焦
日期
日期时间
日期时间2
日期时间偏移
十进制的
浮动
地理
几何学
等级的
形象
int
钱
固定长度
内文
数字的
nvarchar
真实的
smalldatetime
短整型
货币型
sql_变体
系统名
文本
时间
时间戳
锡
唯一标识符
可变长度
瓦尔查尔
xml
(请注意,
sysname
在其中,但
不在其中)

我用entity framework power tools(beta 3,EF 6.0.0 alpha-3)反向设计了一个包含这些类型的表,得到了以下结果:

public分部类AllType{
公共int Id{get;set;}
公共可空bigint{get;set;}
公共字节[]二进制{get;set;}
公共可空位{get;set;}
公共字符串@char{get;set;}
公共可空日期{get;set;}
公共可为空的日期时间{get;set;}
公共可为空的datetime2{get;set;}
公共可为空的datetimeoffset{get;set;}
公共可空@decimal{get;set;}
公共可空@float{get;set;}
public System.Data.Entity.Spatial.DbGeography{get;set;}
public System.Data.Entity.Spatial.DbGeometry{get;set;}
公共字节[]映像{get;set;}
公共可空@int{get;set;}
公共可空货币{get;set;}
公共字符串nchar{get;set;}
公共字符串ntext{get;set;}
公共可空数字{get;set;}
公共字符串nvarchar{get;set;}
公共可空实数{get;set;}
公共可空smalldatetime{get;set;}
公共可为空的smallint{get;set;}
公共可为空的smallmoney{get;set;}
公共字符串sysname{get;set;}
公共字符串文本{get;set;}
公共可空时间{get;set;}
公共字节[]时间戳{get;set;}
公共可空tinyint{get;set;}
公共可为空的唯一标识符{get;set;}
公共字节[]varbinary{get;set;}
公共字符串varchar{get;set;}
公共字符串xml{get;set;}}
您可以看到,目前不支持这些类型:

hierarchyid
sql_variant
当然还有
,因为它首先不是一种列数据类型<