создать FK для моделирования из таблиц проверки форм aspnet - PullRequest
0 голосов
/ 17 января 2012

Я недавно создал приложение MVC 3 ASP.net (с использованием VB).Я также создал проверку форм, запустив aspnet_regsql.Я использовал это для создания таблицы в той же базе данных, что и мое приложение.Я пытаюсь понять, как создать новую модель с помощью FK из таблицы Users.Нужно ли перепроектировать таблицы проверки для создания моделей в моем приложении?в настоящее время таблицы существуют только в базе данных SQL 2008, так как они были созданы с помощью команды aspnet_regsql, и не существуют в качестве моделей в моем решении ASP.net.Вот код, который у меня есть сейчас, для модели, к которой я хотел бы добавить FK (как отношение один ко многим):

  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 Ответ

1 голос
/ 17 января 2012

Вы можете добавить простое свойство, представляющее FK, в таблицу Users, но не следует добавлять свойство навигации.ФК в этом случае будет просто простым свойством без другого значения.Он установит связь между вашей сущностью и пользователем, но не позволит вам работать с пользователями из EF - это именно то, что вы хотите.Вам также нужно будет создать связь в базе данных между вашей таблицей и таблицей Users вручную.

Дело в том, что ничего не сопоставляйте с таблицами базы данных ASP.NET.

  • Эти функции имеют собственный API в ASP.NET.Доступ к этим функциям из EF нарушит инкапсуляцию этого API (а также разделение задач).
  • Классы, предоставляемые этим API, обычно не могут быть отображены напрямую.Если вы хотите отобразить таблицы из базы данных, вам может потребоваться создать новые классы сущностей для этих сущностей = дублирование кода и снова нарушение инкапсуляции и правил, применяемых этим API.

Кстати.это называется проверка подлинности форм, а не проверка форм.

...