Asp.net mvc 4 自定义表名ASP MVC 4
我以前在数据库中创建了一些表,希望映射到一些模型类:Asp.net mvc 4 自定义表名ASP MVC 4,asp.net-mvc-4,Asp.net Mvc 4,我以前在数据库中创建了一些表,希望映射到一些模型类: "SISTEMA.Voyages" => public class Voyage "SISTEMA.Puerto" => public class Port 我知道在ASP.MVC4实体框架中,这可以通过两种方式之一实现。然而,对于这两个问题,我都遇到了一些我不知道如何解决的错误 Voyage.cs中的第一个: [Table("SISTEMA.Voyages")] public class Voyage 或Context.c
"SISTEMA.Voyages" => public class Voyage
"SISTEMA.Puerto" => public class Port
我知道在ASP.MVC4实体框架中,这可以通过两种方式之一实现。然而,对于这两个问题,我都遇到了一些我不知道如何解决的错误
Voyage.cs中的第一个:
[Table("SISTEMA.Voyages")]
public class Voyage
或Context.cs中的第二个:
public class ApplicationEntities : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Voyage>().ToTable("SISTEMA.Voyages");
}
}
在第二次出现这个错误之前,我没有预料到,因为我假设这是一个配置问题,让我非常困惑:
The model backing the 'ApplicationEntities' context has changed since the database was created. Consider using Code First Migrations to update the Database.
这段历史记录在哪里
作为记录,我习惯于在Rails中通过键入以下内容来处理此类问题:
class Voyage
self.table_name = "SISTEMA.Voyages"
end
我对C#/ASP.NET不是很熟悉。除非有人告诉我下一个小时要查找的内容,否则只发布这些内容。对于第一种方法,您缺少表属性的using指令,请将其添加到您的类中:
using System.ComponentModel.DataAnnotations;
对于第二种方法,我猜您的模型中发生了一些变化,现在它建议首先使用代码来更新数据库。当您运行应用程序时,它会首先访问数据库,它会验证您的模型是否与模式匹配——如果不匹配,则会出现此错误
我建议查看这些链接中的一些,以获得有关EF/Code First/Migrations入门的帮助—它们非常方便
对于第一种方法,您缺少表属性的using指令,请将其添加到类中:
using System.ComponentModel.DataAnnotations;
对于第二种方法,我猜您的模型中发生了一些变化,现在它建议首先使用代码来更新数据库。当您运行应用程序时,它会首先访问数据库,它会验证您的模型是否与模式匹配——如果不匹配,则会出现此错误
我建议查看这些链接中的一些,以获得有关EF/Code First/Migrations入门的帮助—它们非常方便
请添加: 使用System.ComponentModel.DataAnnotations.Schema 请添加:
使用System.ComponentModel.DataAnnotations.Schema 对于第一个版本,您是否添加了using指令?(使用System.ComponentModel.DataAnnotations)我刚刚做了。谢谢我现在得到了第二种情况下发生的错误:(目前正在研究迁移,但我仍然感到困惑…阅读后更接近解决方案:基本上我使用System.Data.Entity添加了
;在Global.asax中添加了并且还添加了数据库.setInitIlizer(null);
现在我只需要正确的语法,因为它被解释为dbo.SISTEMA.Voyages
而不是SISTEMA.Voyages
您是否看到第一个版本添加了using指令?(使用System.ComponentModel.DataAnnotations)我刚刚做了。谢谢。我现在得到了第二种情况下发生的错误。:(现在正在研究迁移,但我仍然感到困惑…阅读后更接近解决方案:基本上我使用System.Data.Entity添加了;在Global.asax中添加了数据库.SetInitilizer(null)现在我只需要正确的语法,因为它被解释为dbo.SISTEMA.Voyages
而不是SISTEMA.Voyages
你看到了吗