MVC模型在数据库中创建表而不是使用现有表

时间:2016-09-29 08:30:41

标签: asp.net-mvc vb.net

我正在尝试使用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>

1 个答案:

答案 0 :(得分:1)

ProductContext课程中,添加以下代码:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    ...

    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

    ...

    base.OnModelCreating(modelBuilder);
}

EF不会复数表名