MVC3 MvcScaffolding EF SqlCE SqlExpress - НЕТ РАБОТЫ! - PullRequest
0 голосов
/ 28 марта 2011

Не совсем уверен, что здесь происходит, но кажется, что Microsoft всегда выпускает самые крутые фреймворки (теоретически), а затем не оставляет поддержки.Любой, кто может мне помочь, я буду ОЧЕНЬ благодарен.Этот один поставил меня в тупик на два дня, и я до сих пор не могу понять это.Вот настройки:

  1. Visual Studio 2010 Professional (или Express в этом отношении, я пробовал оба)
  2. SQL Server Compact Edition 4 (или Express в этом отношении, я 'мы пробовали оба)
  3. Создать новый проект, добавить новую модель (я назвал мой BlogModels.cs)
  4. Добавить новый класс с именем Post и присвоить ему свойства, как показано ниже ...

    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data.Entity;
    using System.ComponentModel.DataAnnotations;
    
    namespace MVC3BlogEngine.Models
    {
        public class Post
        {
            public int ID { get; set; }
            [Required]
            public string Title { get; set; }
            [Required]
            [DataType(DataType.MultilineText)]
            public string Text { get; set; }
            public DateTime PublishDate { get; set; }
        }
    }
    
  5. Запустите проект, перейдите к модели (/ Сообщений) и попытайтесь добавить новое сообщение.Если я ввожу более, чем, скажем, 128 символов, возникает исключение:

    Проверка не удалась для одного или нескольких объектов.См. Свойство EntityValidationErrors для более подробной информации.

Итак, что дает?Я смотрю на базу данных, которую она создала (которую я считаю самой крутой вещью со времен нарезанных рогаликов), и вижу, что созданный ею столбец был nvarchar (128).Итак, моя первая мысль состояла в том, что, хотя я сказал ему использовать MultilineText в качестве типа данных, он не генерировал столбец должным образом (не очень хороший MS).Итак, я изменил тип данных на текст и повторил попытку.Неудачно.

Кто-нибудь?

1 Ответ

1 голос
/ 28 марта 2011

Что ж, похоже, что в крайнем случае удаление атрибута типа данных решило проблему. Единственная причина, по которой я начал, была из-за записи в блоге Скотта Хансельмана о создании блога MVC3, который он использовал в своем примере (ноябрь 2010 года), а MVC3 все еще находился в разработке. Таким образом, FYI, DataType.MultilineText не позволит вам ввести более 128 символов.

...