Assuming you've mapped it so that you can't directly reference TopicSubscriptions, and only Topics and Subscriptions, the following applies.
// Add a subscription to a topic
var subscription = dbContect.Subscriptions.Find(2);
var topic = dbContext.Topics.Find(1);
// Recommend checking here, but omitted for example
// Make the association
topic.Subscriptions.Add(subscription);
// Update
dbContext.SaveChanges();
To remove a subscription from a Topic
// Remove
topic.Subscriptions.Remove(subscription);
// Update
dbContext.SaveChanges();
If you know the Ids however and want to remove it directly, I recommend a simple StoredProcedure on the database accepting @topicId and @subscriptionId and removing the entry in TSQL.
@topicId INT,
@subscriptionId INT
DELETE FROM [dbo].[TopicSubscriptions] WHERE TopicId = @topicId AND SubscriptionId = @subscriptionId;
You can then map the StoredProcedure to EF6 and call it from your context.
using (DbContext dbContext = new DbContext())
{
dbContext.DeleteTopicSubscriptionStoredProcedure(topicId, subscriptionId);
}
EDIT
Given only the SP option works (apologies for missing Lazy-Loading false), you can alternatively execute SQL directly from dbContext.
using (var dbContext = new DbContext())
{
string sql = @"DELETE FROM [dbo].[TopicSubscriptions] WHERE TopicId = @p0 AND SubscriptionId = @p1";
context.Database.ExecuteSqlCommand(sql, topicId, subscriptionId);
}