Отключить удаление в Asp.Net динамических данных для одной таблицы, но разрешить вставку - PullRequest
0 голосов
/ 02 августа 2010

Привет У меня есть сайт, где я использую таблицу пользователей. Я хочу иметь возможность добавлять пользователей, но не удалять их - мне нужно обновить файл в базе данных, в котором указано «Удалено» - есть идеи, как это сделать?

Ответы [ 2 ]

0 голосов
/ 20 августа 2010

Я создаю пользовательскую форму для каждой сущности.

0 голосов
/ 02 августа 2010

Я бы предложил использовать что-то вроде Linq to SQL или Entity Framework (или другого ORM) и создать хранилище CRUD (Create, Read, Update, Delete). Но метод для «D» на самом деле будет методом обновления, который обновляет поле isDeleted.

Вот пример моего CRUD-хранилища (также с сервисным уровнем).
http://dotnetblogger.com/post/2010/07/04/MVC2-Separating-Concerns-with-Service-and-Repository-Layers.aspx

Пример:

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 
...