如果您访问此网站http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/intro-to-aspnet-mvc-3,您可以看到用户创建电影数据库的教程。我没有遇到任何问题就完成了本教程,并尝试创建一个新的MVC应用程序,其中包含一些小的更改,这些更改使项目最终与我想要做的更相似。
而是创建一个名为Movie的模型,我创建了一个名为Issue的模型。像电影一样,它有几个字段,但它们都有不同的名称和类型。我完全按照教程中的说明完成了整个过程,但每当我尝试通过Web UI向数据库添加问题时,我都会收到DBEntityValidationException。我在此过程中没有设置任何验证规则,所以我不确定问题是什么。
有人可以给我一些关于修复此问题的建议,以便我可以向我的数据库添加问题(就像在线教程中的电影一样)? 如果需要更多信息,请与我们联系;我对此很陌生,可能缺乏细节。
以下是型号代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace MvcApplication200.Models
{
public class Issue
{
public String id { get; set; }
public DateTime created { get; set; }
public DateTime closed { get; set; }
public String summary { get; set; }
public bool? importToTFS { get; set; }
}
public class IssueDBContext : DbContext
{
public DbSet<Issue> Issues { get; set; }
}
}
更新:我只是重做了整个过程,但我没有使用不同的字段和不同的类型,而是使我的问题模型具有相同数量和相同类型的字段(只有不同的名称)。错误消失了,所以问题必须是db格式或其他东西。我希望这会使问题更加清晰。
答案 0 :(得分:0)
我刚刚添加了这个类,当更改字段时,它会从数据库中删除所有内容。然后,我刷新数据库,这在我的情况下很容易。可以在Seed方法中添加一些项目,以确保清除后更新的数据库中仍有一些内容。
public class IssueInitializer : DropCreateDatabaseIfModelChanges<IssueDBContext>
{
protected override void Seed(IssueDBContext context)
{
//add things here
}
}