最初にコードを介してデータベースを生成するときに、ビット、hierarchyid、sql_variant、sysname、テーブル、またはタイムスタンプとしてプロパティをデータベースにマップすることが (Fluent Api またはデータ注釈のいずれかを介して) 可能かどうか疑問に思っていました。私にとって本当に最も重要なものは sysname です。残りについてはただ興味があります。これを行ったことがありますか?ありがとう
質問する
2359 次
2 に答える
2
ここで3 年前に行った経験的なアプローチをおずおずと繰り返しました。
次の方法でテーブルに入れることができるデータ型を取得しましたSELECT name FROM sys.systypes
。
bigint
binary
bit
char
date
datetime
datetime2
datetimeoffset
decimal
float
geography
geometry
hierarchyid
image
int
money
nchar
ntext
numeric
nvarchar
real
smalldatetime
smallint
smallmoney
sql_variant
sysname
text
time
timestamp
tinyint
uniqueidentifier
varbinary
varchar
xml
sysname
(そこにはあるがそうではないことに注意してくださいtable
)。
これらの型を含むテーブルをエンティティ フレームワーク パワー ツール (ベータ 3、EF 6.0.0 アルファ 3) でリバース エンジニアリングしたところ、次の結果が得られました。
public partial class AllType{
public int Id { get; set; }
public Nullable<long> bigint { get; set; }
public byte[] binary { get; set; }
public Nullable<bool> bit { get; set; }
public string @char { get; set; }
public Nullable<System.DateTime> date { get; set; }
public Nullable<System.DateTime> datetime { get; set; }
public Nullable<System.DateTime> datetime2 { get; set; }
public Nullable<System.DateTimeOffset> datetimeoffset { get; set; }
public Nullable<decimal> @decimal { get; set; }
public Nullable<double> @float { get; set; }
public System.Data.Entity.Spatial.DbGeography geography { get; set; }
public System.Data.Entity.Spatial.DbGeometry geometry { get; set; }
public byte[] image { get; set; }
public Nullable<int> @int { get; set; }
public Nullable<decimal> money { get; set; }
public string nchar { get; set; }
public string ntext { get; set; }
public Nullable<decimal> numeric { get; set; }
public string nvarchar { get; set; }
public Nullable<float> real { get; set; }
public Nullable<System.DateTime> smalldatetime { get; set; }
public Nullable<short> smallint { get; set; }
public Nullable<decimal> smallmoney { get; set; }
public string sysname { get; set; }
public string text { get; set; }
public Nullable<System.TimeSpan> time { get; set; }
public byte[] timestamp { get; set; }
public Nullable<byte> tinyint { get; set; }
public Nullable<System.Guid> uniqueidentifier { get; set; }
public byte[] varbinary { get; set; }
public string varchar { get; set; }
public string xml { get; set; } }
現在、これらのタイプはサポートされていません。
hierarchyid
sql_variant
もちろんtable
、そもそも列のデータ型ではないからです。
まあ、これは tschmit007 の賢い答えを補足するばかげたアプローチです。あなたと同じように、私はただ興味があったからです。
于 2013-03-27T16:23:32.973 に答える