Как использовать Entity Framework 4.0 Inserting для добавления элементов при вставке - PullRequest
2 голосов
/ 28 июля 2010

Предположим, у меня есть 2 таблицы

usersTable

  • идентификатор пользователя не равен нулю
  • имя пользователя nvarchar
  • ... другие поля

ArticleTable

  • Articleid int not null
  • Article ntext
  • идентификатор пользователя id не null
  • имя пользователя nvarchar not null
  • ... больше полей

Чтобы добавить статью, пользователь должен войти в систему. Поэтому я делаю это, чтобы получить его userId и имя пользователя

 ' get the user currently logged in
        Dim currentUser As MembershipUser = Membership.GetUser()
        ' Determine the currently logged on user's UserId value
        Dim currentUserId As Guid = CType(currentUser.ProviderUserKey, Guid)

ЧтоЯ хочу, чтобы, когда статья была вставлена ​​в таблицу Article зарегистрированным пользователем, я хочу добавить имя пользователя и идентификатор пользователя в таблицу article.Я использую Entity FrameWork 4.0 и программирую на VB, спасибо, вы сказали

1 Ответ

1 голос
/ 28 июля 2010

Вы можете переопределить метод SaveChanges в контексте вашего объекта, а затем проверить сущности, которые находятся в состоянии вставки.Поэтому, если ваш объектный контекст называется MembershipEntities и он автоматически сгенерирован для вас, вы можете создать частичный класс MembershipEntities.

В C # ...

public partial class MembershipEntities
{
    public override int SaveChanges(SaveOptions options)
    {
        var memberships = this.ObjectStateManager.GetObjectStateEntries(EntityState.Added).Select(e => e.Entity).ToList();

        //Do what you need to do before you insert your data...

        int changes = base.SaveChanges(options);

    }
}

Я не тестировал этот код, но это должно работать ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...