gpt4 book ai didi

asp.net-mvc - MVC5 Entity Framework 的问题

转载 作者:行者123 更新时间:2023-12-02 03:17:07 25 4
gpt4 key购买 nike

我在我的 Web 应用程序中使用 Visual Studio 2013 中的 ASP.NET MVC5、Entity Framework 6。我正在尝试我的模型工作,但由于某种原因而出现错误。我已经尝试过 Fluent API 和它自己的模型。我确信这一定是愚蠢的事情,但我被困住了..需要帮助。目前我在映射和建模类中遇到错误..我添加了 Controller ,当我调试 var=a1 时,我收到以下错误

EntityFramework.dll 中发生“System.Data.Entity.ModelConfiguration.ModelValidationException”类型的异常,但未在用户代码中处理

测试模型类

public class TestModel
{
public int testID { get; set; }
public string Title { get; set; }
}

映射类

public class TestMap : EntityTypeConfiguration<TestMap>
{
public TestMap()
{
// Primary Key
this.HasKey(t => t.testID);

// Properties
this.Property(t => t.Title)
.IsRequired()
.HasMaxLength(50);

// Table & Column Mappings
this.ToTable("testTable");
this.Property(t => t.testID).HasColumnName("testID");
this.Property(t => t.Title).HasColumnName("Title");
}
}

上下文

public class My_Context : DbContext
{
public My_Context()
: base("name=My_Context")
{
}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer<DORIS_Context>(new CreateDatabaseIfNotExists<DORIS_Context>());
//modelBuilder.Configurations.Add(new TestMap());
}

public DbSet<TestModel> Test { get; set; }
}

Web.config

<connectionStrings>
<add name="My_Context"
</connectionStrings>

Controller

 public class TestController : Controller
{
//
// GET: /Test/
public ActionResult Index()
{
using (var db = new DORIS_Context())
{
var query = from b in db.Test
orderby b.testID
select b;

foreach (var item in query)
{
var a1 = item.Title;
}
}

return View();
}
}

最佳答案

您初始化DORIS_Context有什么原因吗?你的类(class)My_Context类(class)?您的DbSet<TestModel>定义于 My_Context类,但在您的操作方法中,您使用 DORIS_Context来调用它。

如果不需要,请注释掉下面这行

// Database.SetInitializer<DORIS_Context>(new CreateDatabaseIfNotExists<DORIS_Context>());

然后,更改 EntityTypeConfiguration<TestMap>如下:

public class TestMap : EntityTypeConfiguration<TestModel>

您的索引操作应如下所示:

public ActionResult Index()
{
using (var db = new My_Context())
{
//
}
return View();
}

此外,您可能需要在 TestModel 中添加 keyattribute,如下所示:

public class TestModel
{
[Key]
public int testID { get; set; }
public string Title { get; set; }
}

关于asp.net-mvc - MVC5 Entity Framework 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20541056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com