如何使用Entity Framework 4.0插入事件在插入上添加项目

时间:2010-07-27 21:25:25

标签: entity-framework-4

我有2张桌子

usersTable

  • userid guid not null
  • 用户名nvarchar
  • ...更多字段

ArticleTable

  • Articleid int not null
  • Article ntext
  • userid guid not null
  • username 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)

我想要的是,当登录用户将文章插入文章表时, 我想将用户名和用户ID添加到文章表中。 我正在使用Entity FrameWork 4.0并在VB中编程 谢谢 yousaid

1 个答案:

答案 0 :(得分:1)

您可以在对象上下文中覆盖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);

    }
}

我没有测试过这段代码,但它应该可以运行..