FluentMigrator를 사용하여 nvarchar (MAX) 열을 만들 수 있습니까?
사용 FluentMigrator 하는 기본 생성 Column
사용 .AsString()
결과를 nvarchar(255)
. FluentMigrator 코드를 수정하기 전에 유형의 열을 만드는 간단한 방법이 nvarchar(MAX)
있습니까?
.AsMaxString () 내에서 .AsString (Int32.MaxValue)를 래핑하는 확장 메서드를 만들 수 있습니다.
예 :
internal static class MigratorExtensions
{
public static ICreateTableColumnOptionOrWithColumnSyntax AsMaxString(this ICreateTableColumnAsTypeSyntax createTableColumnAsTypeSyntax)
{
return createTableColumnAsTypeSyntax.AsString(int.MaxValue);
}
}
네, 찾았습니다. 기본적으로 .AsString (Int32.MaxValue)를 사용합니다. 유감스럽게도 .AsMaxString () 메서드가 없지만 쉽게 넣을 수 있다고 생각합니다 ...
AsCustom("nvarchar(max)")
확장에 사용 하고 포장 할 수 있습니다.
동일한 설정 또는 열 그룹으로 열 / 테이블을 자주 만드는 경우 마이그레이션을위한 확장 메서드를 만들어야합니다!
예를 들어, 거의 모든 테이블에 CreatedAt 및 UpdatedAt DateTime 열이 있으므로 약간의 확장 메서드를 작성하여 다음과 같이 말할 수 있습니다.
Create.Table("Foos").
WithColumn("a").
WithTimestamps();
내가 생각하는 내가 제대로 확장 방법을 만들어 ... 나는 그것이 작동 알고 있지만 FluentMigrator는이 LOT 여기있다 ... 인터페이스를 :
public static class MigrationExtensions {
public static ICreateTableWithColumnSyntax WithTimestamps(this ICreateTableWithColumnSyntax root) {
return root.
WithColumn("CreatedAt").AsDateTime().NotNullable().
WithColumn("UpdatedAt").AsDateTime().NotNullable();
}
}
마찬가지로 거의 모든 테이블에는 'Id'라는 int 기본 키가 있으므로 Table.CreateWithId("Foos")
항상 해당 ID를 추가하여 나를 위해 추가 할 것이라고 생각 합니다. 확실하지 않습니다 ... 실제로 오늘 FluentMigrator를 사용하기 시작했지만 가능하면 항상 리팩토링해야합니다!
참고 : 당신이 당신의 마이그레이션을위한 메이크업 도우미 / 확장 방법을 할 경우, 당신이해야 결코 이제까지 이제까지 그 방법이 무엇 변경할 수 없습니다. 그렇게하면 마이그레이션 # 1을 만드는 데 사용한 도우미 메서드가 이전과 다르게 작동하기 때문에 누군가 마이그레이션을 실행하려고 시도 할 수 있고 상황이 폭발 할 수 있습니다.
다음은 도우미 메서드를 만드는 데 도움이되는 열을 만드는 코드입니다. https://github.com/schambers/fluentmigrator/blob/master/src/FluentMigrator/Builders/Create/Column/CreateColumnExpressionBuilder.cs
'programing' 카테고리의 다른 글
java replaceLast () (0) | 2021.01.18 |
---|---|
@Override 주석에서 javac가 실패하는 이유 (0) | 2021.01.18 |
이전 Android 프로젝트를 Eclipse로 가져올 때 AndroidManifest.xml 누락 (0) | 2021.01.18 |
C ++에서 벡터에 대한 포인터에서 벡터의 내용에 액세스하는 방법은 무엇입니까? (0) | 2021.01.18 |
webSocketServer node.js 클라이언트를 차별화하는 방법 (0) | 2021.01.18 |