【发布时间】:2017-03-20 07:47:35
【问题描述】:
我是 Asp.net 的新手,并在 Asp.Net 中使用 MVC5 创建了一个 Web 应用程序。我有一个简单的问题,比如我们可以用两个模型创建 DbContext(如下图所示)。
从上面的代码中,我可以将 CRUD 操作应用于 Employee 模型。但是我得到了这个异常:
System.Data.SqlClient.SqlException:无效的对象名称'dbo.User 详情'
对于 UserDetails 模型,我怀疑它的发生只是因为一个 DbContext 中有两个模型。我的方法是否正确?
请帮帮我..
【问题讨论】:
-
是否存在表“dbo.User”?也许您还需要将其添加到上下文中
-
当然,您可以在
DbContext类中添加多个DbSet,只要实体类型名称存在即可。哪个 CRUD 操作抛出异常? -
@user2657943 是的,它以表名“用户详细信息”存在; @Tetsuya Yamamoto 在使用
db.UserDetails.Add(userDetails);添加数据后,await db.SaveChangesAsync();出现异常 -
打开 UserDetails 类并在其上方放置一个
[Table("YourTableName")]。如果它不起作用,请尝试运行迁移。我打赌 EF 会为您创建正确的表格。 -
如果你在上下文类中有重写
OnModelCreating方法,你可以在modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();之后尝试modelBuilder.Entity<UserDetails>().ToTable("UserDetails");,然后使用Database.SetInitializer<EmployeeContext>(new CreateDatabaseIfNotExists<EmployeeContext>());。
标签: c# sql-server model asp.net-mvc-5 datacontext