2012-04-12 11 views
6

Pracuję z systemem, który używa najpierw kodu EF i chciałbym użyć kilku rzadkich kolumn SQL Server w tabeli. Moje obecne rozwiązanie polega na usunięciu tabeli utworzonej przez EF i ponownym dodaniu za pomocą skryptu podczas inicjowania bazy danych. Czy jest to coś, co można skonfigurować za pomocą Fluent API w klasie dziedziczonej po EntityTypeConfiguration lub w inny sposób?Jak ustawić kolumnę bazy danych jako "Sparse" przy korzystaniu z EF Fluent First Fluent API?

+0

Nie próbowałem tego, ale co się stanie, jeśli użyjesz '.HasColumnType (" INT SPARSE ")'? –

+1

@LadislavMrnka Próbowałem .HasColumnType ("INT SPARSE") i rzucił '(182,6): error 0040: Spacja typu Type int nie jest kwalifikowana z przestrzenią nazw lub aliasami. Tylko typy pierwotne mogą być używane bez kwalifikacji. "Dziękuję za pomysł. – cResults

+0

Cóż, prawdopodobnie oznacza to, że rozrzedzone kolumny nie są obsługiwane. –

Odpowiedz

3

Jeśli używasz Entity Ramki migracje, można wydać polecenie SQL jak to w sposobie Up do migracji, który dodaje kolumnę rzadki:

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

Nawet jeśli nie używasz migracje, każdy -time wykonanie dbContext.Database.ExecuteSqlCommand z tym samym SQL będzie działać.

Żadna z tych metod nie jest tak miła, jak gdyby można było jawnie skonfigurować typ za pomocą EF, ale nadal jest lepsza niż upuszczenie i zastąpienie całej tabeli.

Powiązane problemy