【发布时间】:2017-04-16 20:33:26
【问题描述】:
我正在使用 razor 语法的 asp.net mvc 5 和 Entity Framework 6 开发一个 Intranet 应用程序,但是当我运行该应用程序时,会出现 EntitySqlException。
当我查看错误消息时,我有这个:
实体集或函数导入“COVENANTS_RT”未在实体容器“Model1”中定义。
这是我的 Model1 DbContext:
public partial class Model1 : DbContext
{
public Model1() : base("name=Model1")
{
}
public virtual DbSet<covenants> covenants { get; set; }
public virtual DbSet<covenants_detalhes> covenants_detalhes { get; set; }
public virtual DbSet<COVENANTS_RT> COVENANTS_RT { get; set; }
public virtual DbSet<RT> RT { get; set; }
public virtual DbSet<VW_USUARIOS> VW_USUARIOS { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
...
modelBuilder.Entity<RT>()
.Property(e => e.nome_operacao)
.IsUnicode(false);
modelBuilder.Entity<RT>()
.HasMany(e => e.COVENANTS_RT)
.WithRequired(e => e.RT)
.HasForeignKey(e => e.FK_COD_RT);
这是我的模型类COVENANTS_RT:
[Table("COVENANTS_RT")]
public partial class COVENANTS_RT
{
[Key]
public int CODIGO_COVENANT_PK { get; set; }
[Column(TypeName = "ntext")]
public string texto_covenant { get; set; }
[StringLength(255)]
public string situacao { get; set; }
[Column(TypeName = "ntext")]
public string OBS { get; set; }
public int FK_COD_RT { get; set; }
public virtual RT RT { get; set; }
}
还有班级RT:
[Table("RT")]
public partial class RT
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public RT()
{
COVENANTS_RT = new HashSet<COVENANTS_RT>();
}
[Key]
public int PK_CODIGO_RT { get; set; }
...
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<COVENANTS_RT> COVENANTS_RT { get; set; }
}
以及razor页面出现错误的代码:
@model site_covenants.Models.RT
@{
Layout = null;
}
...
@foreach (var Item in Model.COVENANTS_RT )
那么,我必须做些什么来解决这个问题?
【问题讨论】:
标签: asp.net-mvc razor entity-framework-6