2010-08-02 3 views

Répondre

0

je crée un formulaire personnalisé pour chaque entité.

0

Je suggère d'utiliser quelque chose comme Linq to SQL ou Entity Framework (ou autre ORM), et de créer un dépôt CRUD (Créer, Lire, Mettre à jour, Supprimer). Mais la méthode pour le "D" sera en fait une méthode de mise à jour qui met à jour le champ isDeleted.

Voici un exemple de mon référentiel CRUD (avec une couche de service également).
http://dotnetblogger.com/post/2010/07/04/MVC2-Separating-Concerns-with-Service-and-Repository-Layers.aspx

Exemple:

Public Class UserRepository : Implements IUserRepository 
    Private dc As MyDatabaseDataContext 
    Public Sub New() 
     dc = New MyDatabaseDataContext 
    End Sub 

    ''# note, this adds a user based on an OpenID - might not be what you're looking for 
    Public Sub AddUser(ByVal openid As OpenID) Implements IUserRepository.AddUser 
     Dim user As New User 
     user.MemberSince = DateTime.Now 
     openid.User = user 

     dc.OpenIDs.InsertOnSubmit(openid) 
    End Sub 

    ''# This gets users as Queryable so that we can defer the query till the end. 
    Public Function GetUsers() As IQueryable(Of User) Implements IUserRepository.GetUsers 
     Dim users = (From u In dc.Users 
        Select u) 
     Return users.AsQueryable 
    End Function 

    ''# Here's the magic function that you're looking for. DELETE is actually an UPDATE. 
    Public Sub DeleteUser(ByVal user as User) Implements IUserRepository.DeleteUser 
     Dim _user = (From u In dc.Users 
      Where u.ID = user.ID 
      Select u).Single 

     _user.isDeleted = True 
    End Sub 


    ''# Basic Update Method 
    Public Sub UpdateUser(ByVal user As User) Implements IUserRepository.UpdateUser 
     Dim _user = (From u In dc.Users 
      Where u.ID = user.ID 
      Select u).Single 

     With _user 
      .About = user.About 
      .BirthDate = user.BirthDate 
      .Email = user.Email 
      .isClosed = user.isClosed 
      .isProfileComplete = user.isProfileComplete 
      .RegionID = user.RegionID 
      .Reputation = user.Reputation 
      .UserName = user.UserName 
      .WebSite = user.WebSite 
     End With 

    End Sub 

    ''# Make sure to call SubmitChanges 
    Public Sub SubmitChanges() Implements IUserRepository.SubmitChanges 
     dc.SubmitChanges() 
    End Sub 
End Class 
+0

Comment définir que la fonction de suppression dans Dynamic Data utilise mon code? –

+0

Dynamic Data utilise toujours Linq To SQL. Allez dans le code derrière le modèle Edit et postez le code d'édition (il suffit de modifier votre question existante). Je n'utilise pas les données dynamiques (j'ai choisi MVC à la place), mais les principes seront les mêmes. –

Questions connexes