EF的MVc错误

时间:2013-08-24 12:03:39

标签: asp.net-mvc-3

我创建了一个与EF没有任何关系的模型。 当我在上下文中添加它并为create database运行app时,我在Application-start中有一个错误:

在模型生成期间检测到一个或多个验证错误:     System.Data.Edm.EdmEntityType :: EntityType'UrlHelper'没有定义键。定义此EntityType的键。     System.Data.Edm.EdmEntityType :: EntityType'RequestContext'没有定义键。定义此EntityType的键。     System.Data.Edm.EdmEntityType :: EntityType'HttpContextBase'没有定义键。定义此EntityType的键。     System.Data.Edm.EdmEntityType :: EntityType'Exception'没有定义键。定义此EntityType的键。     System.Data.Edm.EdmEntityType :: EntityType'Type'没有定义键。定义此EntityType的密钥。

我的global.asax中的代码如下所示:

    public class MyInitializer
: DropCreateDatabaseIfModelChanges<DBTa>
    {
    }
    protected void Application_Start()
    {
        //for creating and initializing database 
        System.Data.Entity.Database.SetInitializer(new MyInitializer());
        **DBTa db = new DBTa();**//Error shows here
        db.Database.Initialize(true);
        //

        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }

但是当我从app中移除模型时我的问题解决了,但我需要这个模型。

请帮忙 非常感谢

1 个答案:

答案 0 :(得分:0)

你应该设置&#34; key&#34; 'UrlHelper'模型中的属性。 如果您首先使用EF代码 - 在模型中,您应该将属性[Key]添加到其中一个属性中。 如果使用模型优先方法 - 在模型中,您应将其中一个属性标记为主键。 如果您使用数据库第一种方法 - 您应该在表中创建主键。