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?
6
A
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.
Nie próbowałem tego, ale co się stanie, jeśli użyjesz '.HasColumnType (" INT SPARSE ")'? –
@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
Cóż, prawdopodobnie oznacza to, że rozrzedzone kolumny nie są obsługiwane. –