Ensure strings with length greater than 255 are converted to long text/memo (#197)

When the option to use the short text (aka varchar) as the default for System.String, if we have a attribute or fluent api that sets its max length to greater than 255 it would stay as varchar, which is invalid with a length greater than 255.

Fix this to upgrade this instance to an unbounded string. This will use the long text/memo data type in Jet (longchar)
pull/198/head
Christopher Jolly 2 years ago committed by GitHub
parent df7b86ac96
commit 2afe8f05ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -114,6 +114,7 @@ namespace EntityFrameworkCore.Jet.Storage.Internal
return _keepLineBreakCharacters
? escaped
: escaped
.Replace("\r\n", "' & CHR(13) & CHR(10) & '")
.Replace("\r", "' & CHR(13) & '")
.Replace("\n", "' & CHR(10) & '");
}

@ -329,12 +329,14 @@ namespace EntityFrameworkCore.Jet.Storage.Internal
const int maxIndexedCharColumnSize = 255;
var size = mappingInfo.Size ?? (mappingInfo.IsKeyOrIndex ? (int?)maxIndexedCharColumnSize : null);
bool extendtolongchar = false;
if (size > maxCharColumnSize)
{
size = isFixedLength ? maxCharColumnSize : (int?)null;
extendtolongchar = true;
}
if (_options.UseShortTextForSystemString && size == null)
if (_options.UseShortTextForSystemString && size == null && !extendtolongchar)
{
return new JetStringTypeMapping("varchar", unicode: true, size: 255);

@ -6423,6 +6423,17 @@ EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.OneToOneSelfRefe
EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.SelfReferencingManyToManyTest
EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.SelfReferencingUnidirectionalManyToManyTest
EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.UnidirectionalManyToManyTest
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.AddressAndPayment_ReturnsOrderIfInvalidPromoCode
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Browse_ReturnsViewWithGenre
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Can_add_items_to_cart
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Complete_ReturnsErrorIfInvalidOrder
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Custom_projection_FirstOrDefault_works(async: False)
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Custom_projection_FirstOrDefault_works(async: True)
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Details_ReturnsAlbumDetail
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.GenreMenuComponent_Returns_NineGenres
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Index_CreatesViewWithGenres
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Index_GetsSixTopAlbums
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Music_store_project_to_mapped_entity
EntityFrameworkCore.Jet.FunctionalTests.NotificationEntitiesJetTest.Include_brings_collections_referenced_from_already_tracked_notification_entities_as_Unchanged
EntityFrameworkCore.Jet.FunctionalTests.NotificationEntitiesJetTest.Include_brings_entities_referenced_from_already_tracked_notification_entities_as_Unchanged
EntityFrameworkCore.Jet.FunctionalTests.OptimisticConcurrencyJetTest.Adding_the_same_entity_twice_results_in_DbUpdateException

@ -702,6 +702,30 @@ EntityFrameworkCore.Jet.FunctionalTests.ConcurrencyDetectorEnabledJetTest.Single
EntityFrameworkCore.Jet.FunctionalTests.ConcurrencyDetectorEnabledJetTest.Single(async: True)
EntityFrameworkCore.Jet.FunctionalTests.ConcurrencyDetectorEnabledJetTest.ToList(async: False)
EntityFrameworkCore.Jet.FunctionalTests.ConcurrencyDetectorEnabledJetTest.ToList(async: True)
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_AddSession
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_AddSession_bad_attendee
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_AddSession_bad_session
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_Get
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_GetSessions
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_Post_with_existing_attendee
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_Post_with_new_attendee
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_RemoveSession
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_RemoveSession_bad_attendee
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_RemoveSession_bad_session
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SearchController_Search(searchTerm: "C#", totalCount: 3, sessionCount: 3)
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SearchController_Search(searchTerm: "ran", totalCount: 5, sessionCount: 1)
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SearchController_Search(searchTerm: "Scott", totalCount: 1, sessionCount: 0)
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Delete
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Delete_with_bad_ID
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Get
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Get_with_bad_ID
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Get_with_ID
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Post
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Put
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Put_with_bad_ID
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SpeakersController_GetSpeaker_with_bad_ID
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SpeakersController_GetSpeaker_with_ID
EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SpeakersController_GetSpeakers
EntityFrameworkCore.Jet.FunctionalTests.ConnectionInterceptionJetTestBase+ConnectionInterceptionJetTest.Intercept_connection_creation_passively(async: False)
EntityFrameworkCore.Jet.FunctionalTests.ConnectionInterceptionJetTestBase+ConnectionInterceptionJetTest.Intercept_connection_creation_passively(async: True)
EntityFrameworkCore.Jet.FunctionalTests.ConnectionInterceptionJetTestBase+ConnectionInterceptionJetTest.Intercept_connection_creation_with_multiple_interceptors(async: False)
@ -7781,6 +7805,20 @@ EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.OneToOneSelfRefe
EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.SelfReferencingManyToManyTest
EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.SelfReferencingUnidirectionalManyToManyTest
EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.UnidirectionalManyToManyTest
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.AddressAndPayment_RedirectToCompleteWhenSuccessful
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.AddressAndPayment_ReturnsOrderIfInvalidPromoCode
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Browse_ReturnsViewWithGenre
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Can_add_items_to_cart
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.CartSummaryComponent_returns_items
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Complete_ReturnsErrorIfInvalidOrder
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Complete_ReturnsOrderIdIfValid
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Custom_projection_FirstOrDefault_works(async: False)
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Custom_projection_FirstOrDefault_works(async: True)
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Details_ReturnsAlbumDetail
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.GenreMenuComponent_Returns_NineGenres
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Index_CreatesViewWithGenres
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Index_GetsSixTopAlbums
EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Music_store_project_to_mapped_entity
EntityFrameworkCore.Jet.FunctionalTests.NotificationEntitiesJetTest.Include_brings_collections_referenced_from_already_tracked_notification_entities_as_Unchanged
EntityFrameworkCore.Jet.FunctionalTests.NotificationEntitiesJetTest.Include_brings_entities_referenced_from_already_tracked_notification_entities_as_Unchanged
EntityFrameworkCore.Jet.FunctionalTests.OptimisticConcurrencyJetTest.Adding_the_same_entity_twice_results_in_DbUpdateException

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save