I have a somewhat tricky question to ask but I shall do my best.
I have two classes:
- BlogPost
 - BlogTag
 
BlogPost has a public property HashSet<BlogTag> Tags, a collection of blog tags, simple enough. What I'm trying to achieve is to add a new BlogPost to my table dbo.BlogPost, and then iterate over the HashSet of tags and update a separate table dbo.BlogTags for example with each tag in the collection and the ID of the post it belongs to.
I would do this using something like: -
public static void AddPost(BlogPost post)
{
     try
     {
         Database db = DatabaseFactory.CreateDatabase(Constants.Application.DatabaseName);
         DbCommand cmd = db.GetStoredProcCommand("stp_BlogPost_Add");
         db.AddInParameter(cmd, "post_title", DbType.String, post.Title);
         db.AddInParameter(cmd, "author", DbType.String, post.Author);
         db.AddInParameter(cmd, "date_created", DbType.DateTime, DateTime.Now);
         db.AddInParameter(cmd, "post_content", DbType.String, post.Content);
         //Snip...
         //Insert tags
         foreach(BlogTag tag in post.Tags)
         {
             AddNewTags(post.ID, tag.TagText);
         }
         db.ExecuteNonQuery(cmd);
     }
     catch (Exception ex)
     {
         Logging.LogError(ex);
         throw;
     }
 }
However, the problem I can't seem to get around is this:
foreach(BlogTag tag in post.Tags)
{
    AddNewTags(post.ID, tag.TagText);
}
The above would work only when we have the post.ID value, however, since this is run in the AddPost method, the ID will still be the default 0 at this point (id for record is PK in table and is set to auto-increment.
Is there a way of passing in the HashSet<BlogTags> directly as a parameter to the stored procedure (worth mentioning that I'm a total SQL newbie), and then once the stp_BlogPost_Add procedure has run, get the id of the newly created post and insert the values into the BlogTags table? 
Alternatively, is there a preferred approach of achieving what I want to do other than the above? I had considered simple storing the tags as a comma separated string in the BlogPost table and then splitting by , when needed but this doesn't seem as clean.
Any suggestions would be greatly appreciated