0

我最近创建了一个MVC 3 ASP.net应用程序(使用VB)。我还通过运行aspnet_regsql创建了表单验证。我用它在我的应用程序使用的同一个数据库中创建表。我试图找出如何创建一个新的模型,用户表中有一个FK。我是否必须对验证表进行反向工程以在我的应用程序中创建模型?现在,这些表仅存在于SQL 2008数据库中,因为它们是通过运行aspnet_regsql命令创建的,并不在我的ASP.net解决方案中作为模型存在。这里是我现在的代码,一个模型,我想一个FK增加(作为一个一对多的关系):创建FK模型,从aspnet表格验证表

Imports System.Data.Entity 
    Imports System.ComponentModel 
    Imports System.ComponentModel.DataAnnotations 
    Imports System.Globalization 

    Public Class modelArtist 
    Public Property ID() As Integer 

    <Required()> _ 
    <DataType(DataType.Text)> _ 
    <Display(Name:="Artist Name:")> _ 
    Public Property ArtistName() As String 

    <DataType(DataType.Text)> _ 
    <Display(Name:="Artist Bio:")> _ 
    Public Property ArtistBio() As String 

    <Display(Name:="")> 
    Public Property dateCreated() As Date 

    <Display(Name:="")> _ 
    Public Property dateLastEdited() As Date 
End Class 

    Public Class iDjItDBContext 
    Inherits DbContext 
    Public Property modelArtist() As DbSet(Of modelArtist) 
    End Class 

回答

1

可以代表FK简单的属性添加到用户表,但是你应该不添加导航属性。在这种情况下FK将只是简单的属性,没有其他含义。它将建立你的实体和用户之间的连接,但它不允许你与EF的用户合作 - 这正是你想要的。您还必须手动在表和用户表之间创建数据库中的关系。

问题是,不要映射ASP.NET数据库表中的任何内容。

  • 这些功能在ASP.NET中有自己的API。从EF访问这些功能将违反该API的封装(以及关注点分离)。
  • 该API提供的类通常不能直接映射。如果你想从数据库映射表,你可能需要为这些实体创建新的实体类=代码重复,并再次破坏该API实施的封装和规则。

Btw。它被称为表单身份验证而不是表单验证。

+0

感谢您的帮助! – jason 2012-01-17 16:34:42