2012-04-12 3 views
6

私は最初にEFコードを使用しているシステムで作業しています。テーブル上にいくつかのSQL Serverスパース列を使用したいと思います。私の現在の解決策は、EFによって作成されたテーブルを削除し、データベースの初期化中にスクリプトを使用して再追加することです。これは、EntityTypeConfigurationや他の手段から継承したクラスでFluent APIを使用して設定できるものですか?あなたは、いずれかの移行を使用しない場合でもEF Code First Fluent APIを使用する場合、データベース列を「スパース」として設定するにはどうすればよいですか?

Sql("alter table TableName alter column ColumnName int sparse"); 

:あなたは、エンティティフレームワークの移行を使用している場合

+0

私は試しませんでしたが、 '.HasColumnType(" INT SPARSE ")'を使うとどうなりますか? –

+1

@LadislavMrnka私は.HasColumnType( "INT SPARSE")を試みましたが、それは '(182,6)をスローしました:エラー0040:型intスパースは名前空間またはエイリアスで修飾されていません。資格なしでプリミティブ型だけを使用することができます。「このアイデアをありがとう。 – cResults

+0

まあ、スパース列はサポートされていない可能性があります。 –

答えて

3

、あなたはスパース列を追加し、移行のためのUp方法では、このようなSQL文を発行することができます同じSQLを使用してdbContext.Database.ExecuteSqlCommandを実行すると動作します。

EFでタイプを明示的に設定できるかぎり、テーブル全体を削除して置き換えるよりも優れています。

関連する問題