MVC3 MvcScaffolding EF SqlCE SqlExpress - 没有用!

时间:2011-03-28 01:34:55

标签: asp.net-mvc-3 scaffolding

不太确定这里发生了什么,但似乎微软总是推出最酷的框架(理论上),然后不予支持。在那里可以帮助我的任何人我将非常非常。这个让我难倒两天了,我仍然无法弄明白。这是设置:

  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”属性。

  6. 那么,是什么给出的?我去看看它创建的数据库(我认为这是自切片百吉饼以来最酷的东西)并看到它创建的列是nvarchar(128)。所以,我的第一个想法是,即使我告诉它使用MultilineText作为数据类型,它也没有正确生成列(不好的MS)。所以,我将数据类型更改为文本并再次尝试。没运气。

    任何?

1 个答案:

答案 0 :(得分:1)

好吧,似乎最后一种方法是删除数据类型的属性解决了问题。我在那里开始的唯一原因是因为Scott Hanselman关于创建MVC3博客的视频博客条目,他在他的例子中使用了该属性(2010年11月),MVC3仍处于开发阶段。因此,FYI,DataType.MultilineText将不允许您输入超过128个字符。