我正在尝试使用vb.net MVC简单地访问现有数据库中的信息。问题是,当我运行代码时,它在数据库中创建一个表,其名称类似于我试图访问的表,并在末尾添加了's'。
e.g:
现有表:VXPartsData。
运行应用程序后创建的表:VXPartsDatas
我已经设法用c sharp很容易做到这一点,但是不明白我在哪里使用VB出错了。如果有人能指出我正确的方向,谢谢
Imports System.Data.Linq
Imports System.Data.Linq.Mapping
Imports System.ComponentModel.DataAnnotations
Imports System.Data.Entity
Namespace Models
<Table(Name:="dbo.VXPartsData")>
Public Class VXPartsData
<Key()>
Public Property PartNo As String
Public Property CustPart As String
Public Property ShortDesc As String
Public Property Part As String
Public Property Price As Decimal
Public Property DiscCode As String
Public Property Kit As Boolean
Public Property VXCODE As String
End Class
Public Class ProductContext
Inherits DbContext
Public Property VXPartsDatas As DbSet(Of VXPartsData)
End Class
End Namespace
控制器:
Imports System.Data.Entity
Imports Videx_PB2.Models
Public Class HomeController
Inherits System.Web.Mvc.Controller
Private db As New ProductContext
Function Index() As ActionResult
Return View(db.VXPartsDatas.ToList())
End Function
End Class
连接字符串:
<connectionStrings>
<add name="ProductContext" connectionString="server=(localdb)\MSSQLLocalDB; database=VidexPB; integrated security=SSPI" providerName="System.Data.sqlClient" />
</connectionStrings>
答案 0 :(得分:1)
在ProductContext
课程中,添加以下代码:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
...
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
...
base.OnModelCreating(modelBuilder);
}
EF不会复数表名