Wes*_* T. 9 c# entity-framework-4.1 asp.net-mvc-3
当我尝试从我的Bieren表中获取数据时,我的代码给了我一个EntityCommandExecutionException.
异常消息说它找不到"dbo.Biers",这是非常明显的,因为它被称为"dbo.Bieren".
我可以通过重命名数据库中的表来轻松解决这个问题.尽管我不喜欢修复我的代码错误的数据库.
如何让实体框架使用正确的表而不是更改表的名称?
提前致谢.
对于数据库优先方法,StriplingWarrior的解决方案运行良好.但是,如果使用代码优先方法,则可以System.ComponentModel.DataAnnotations.TableAttribute在目标实体类上使用将实体类映射到数据库表.
但是,这种方式有点烦人,因为我们通常想要定义一个纯实体类.为此,您可以将其委托给另一个类,或者使用类中的覆盖OnModelCreating方法,DbContext如下所示.
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Category>()
.ToTable("MyCategories");
}
Run Code Online (Sandbox Code Playgroud)
您的实体框架模型包含有关其连接的表名称和连接的信息.如果您使用的是数据库优先方法,则应该有一个包含数据库模型的EDMX文件.最简单的方法是从数据库更新模型.
也可以深入了解Biers类型的属性,并手动更改表名.