Przy użyciu domyślne utworzenie Column
przy użyciu .AsString()
prowadzi do uzyskania wartości nvarchar(255)
. Czy istnieje prosty sposób (zanim zmodyfikuję kod FluentMigrator), aby utworzyć kolumnę typu nvarchar(MAX)
?Czy mogę utworzyć kolumnę nvarchar (MAX) przy użyciu FluentMigrator?
Odpowiedz
Można utworzyć metodę rozszerzenia do zawijania .AsString (Int32.MaxValue) w ciągu .AsMaxString()
na przykład
internal static class MigratorExtensions
{
public static ICreateTableColumnOptionOrWithColumnSyntax AsMaxString(this ICreateTableColumnAsTypeSyntax createTableColumnAsTypeSyntax)
{
return createTableColumnAsTypeSyntax.AsString(int.MaxValue);
}
}
OK, znalazłem to. Zasadniczo, użyj .AsString (Int32.MaxValue). Szkoda, że nie jest to metoda .AsMaxString(), ale myślę, że to dość łatwe do umieszczenia w ...
Jeśli często tworzysz kolumny/tabele z tymi samymi ustawieniami lub grupami kolumn, powinieneś tworzyć metody rozszerzenia dla swoich migracji!
Na przykład, prawie każdy z moich tabel ma CreatedAt i UpdatedAt DateTime kolumny, więc bita trochę metodę rozszerzenia, więc mogę powiedzieć:
Create.Table("Foos").
WithColumn("a").
WithTimestamps();
myślę I stworzył metodę rozszerzenia poprawnie ... wiem, że to działa, ale FluentMigrator ma LOT interfejsów ... tutaj jest:
public static class MigrationExtensions {
public static ICreateTableWithColumnSyntax WithTimestamps(this ICreateTableWithColumnSyntax root) {
return root.
WithColumn("CreatedAt").AsDateTime().NotNullable().
WithColumn("UpdatedAt").AsDateTime().NotNullable();
}
}
Podobnie, prawie każdy z moich tabel ma int klucz podstawowy o nazwie "Id", więc myślę, że zamierzam dodać Table.CreateWithId("Foos")
, aby zawsze dodawać dla mnie ten identyfikator. Nie jestem pewien ... Właśnie zacząłem używać FluentMigrator dzisiaj, ale zawsze powinieneś być refaktoryzacji, kiedy to możliwe!
UWAGA: Jeśli robią metod pomocnik/przedłużających dla migracji, należy nigdykiedykolwiekkiedykolwiek zmiana co te metody zrobić. Jeśli to zrobisz, ktoś może spróbować uruchomić twoje migracje i rzeczy mogą eksplodować, ponieważ metody pomocnicze użyte do utworzenia migracji nr 1 działają teraz inaczej niż wcześniej.
Oto kod do tworzenia kolumn okrywać pomaga utworzyć metody pomocnika: https://github.com/schambers/fluentmigrator/blob/master/src/FluentMigrator/Builders/Create/Column/CreateColumnExpressionBuilder.cs
można użyć AsCustom("nvarchar(max)")
i zapakować go do przedłużenia
- 1. SqlServer i nvarchar (max)
- 2. Jak utworzyć indeks na nvarchar (max) typ danych w sql?
- 3. Fluent NHibernate automapping jako nvarchar (max)
- 4. Utwórz kolumnę obliczeniową przy użyciu danych z innej tabeli
- 5. Dodaj wiązanie do kolumny tabeli przy użyciu Create.Table, FluentMigrator
- 6. Jak przekonwertować kolumnę Nvarchar do INT
- 7. Czy mogę utworzyć aplikację konsolową przy użyciu Xamarin.Mac?
- 8. MS SQL: Konwertuj kolumnę Datetime na nvarchar
- 9. Jak zmienić każdą kolumnę nvarchar na varchar?
- 10. Czy mogę utworzyć kolumnę datetime z wartością domyślną w sqlite3?
- 11. Java ResultSet przy użyciu funkcji SQL MAX
- 12. Epplus znajdź kolumnę przy użyciu nazwy kolumny
- 13. Wyjaśnienie migrantów (FluentMigrator)?
- 14. utworzyć słownik przy użyciu 2 list przy użyciu LINQ
- 15. Jak mogę utworzyć poprawkę obejmującą zatwierdzenia przy użyciu Sourcetree?
- 16. Dla Nvarchar (Max) Mam tylko 4000 znaków w TSQL?
- 17. Jak mogę utworzyć bazę danych przy użyciu pymssql
- 18. Zmiana kolumny danych z varchar (max) na nvarchar (max) w SQL Server 2008
- 19. Czy można utworzyć relacyjną bazę danych przy użyciu MongoDB?
- 20. Jak ustawić kolumnę w programie SQL Server na varchar (max) przy użyciu Adnotacji danych kodu źródłowego ASP.net EF?
- 21. Czy mogę przecinać wiele wierszy w jedną kolumnę?
- 22. Czy mogę utworzyć funkcję "extern" c "`?
- 23. POMYSŁ: Jak utworzyć toString() przy użyciu nadklasy
- 24. Utwórz kolumnę z varchar (max) zamiast varchar (8000)
- 25. Czy ktoś ma przykłady, jak utworzyć ścieżkę przy użyciu MKOverlayPathView?
- 26. Czy mogę wybrać n-tą kolumnę?
- 27. utworzyć wykres liniowy wielofunkcyjnego przy użyciu Chart.js
- 28. W jaki sposób mogę przetestować swoje migracje FluentMigrator?
- 29. Android DatePicker pokazuje niedostępne miesiące przy użyciu limitów min/max
- 30. SELECT MAX of COUNT