Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7399391
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 29, 20262026-05-29T04:03:18+00:00 2026-05-29T04:03:18+00:00

Put simply, I have a WCF service that manages apples. Apart from other functionality,

  • 0

Put simply, I have a WCF service that manages apples. Apart from other functionality, it has two methods to add and remove apples from storage. I am writing an integration test to check if someone is getting advantage of the job and nicks apples. Raven DB in my WCF service has an audit role, it just records actions and apples. In the methods of WCF service there is some other processing: cleaning, validation, packaging etc.

My audit integration test can be expresses as

  • Empty storage (RavenDB in-memory mode)
  • Bob comes and puts 10 apple (open session, add, dispose session)
  • Jake comes and takes 4 apples (open session, remove, dispose session)
  • Check that 6 apples left

As these are two different people (two WCF calls) it make sense to use different instances of session. However, with Raven DB I get

Exception

Apple is not associated with the session, cannot delete unknown entity
instance

If I now run similar integration test where two different people just add apples to the storage, the total storage content corresponds to truth. This is confusing bit: adding works across session, removing doesn’t work. In this post Ayende says session micro-managing is not the way to go, but it seems natural to me to use different sessions in my integration testing. Hope analogy with apples doesn’t put you off.

Question: How do I use sessions in integration testing with RavenDB?

Sample code (from notepad)

public void Remove(Apple apple)
{
    using (var session = Store.OpenSession())
    {
        session.Delete(apple);
        session.SaveChanges();      
    }
}

public void Add(Apple apple)
{
    using (var session = Store.OpenSession())
    {
        session.Store(apple);
        session.SaveChanges();      
    }
}

...

var apples = new apples[10];
//init
MyRavenDB.Add(apples);
MyRavenDB.Remove(apples.Take(4)); //throws here
//verify
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-29T04:03:18+00:00Added an answer on May 29, 2026 at 4:03 am

    In RavenDB, “The session manages change tracking for all of the entities that it has either loaded or stored”.

    I suspect the Apple reference you are passing to Remove() method, did not originate from RavenDB Document Store, hence the error.

    Try this:

    public void Remove(Apple apple)
    {
        using (var session = Store.OpenSession())
        {
            var entity = session.Load<Apple>(apple.Id);
    
            session.Delete(entity);
            session.SaveChanges();      
        }
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a simple WCF service that I call server side from code behind
I have been sending encrypted data from my application to my WCF service simply
Very simply put: I have a class that consists mostly of static public members,
Simply put, I have a table with, among other things, a column for timestamps.
I have a simple REST web service in WCF that is declared as follows:
Simply put: I have a table with 2 columns: one is username and other
I have written a WCF service that I am hosting in IIS7 as a
Simply put: My model has two tables, Concepts and Transactions, which gives birth to
Very simply put, I have the following code snippet: FILE* test = fopen(C:\\core.u, w);
I have a new project which simply put, is an attempt to formalize the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.