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 8870719
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 14, 20262026-06-14T17:48:23+00:00 2026-06-14T17:48:23+00:00

I have a web application that uses linq-to-sql queries (will soon be upgraded to

  • 0

I have a web application that uses linq-to-sql queries (will soon be upgraded to linq-to-EF compiled queries) and for which there’s data context and a database already in place. I want to create a demo version of the application and for the demo, I want to use an entirely different database file but that will have the same tables. So in essence, I’ll have the same data structure for two different databases: one database for logged-in users and one database for demo users. I want to reuse many of the queries I’ve already written; they look like this:

 public class FruitQueries
 {
        public List<SomeObjectModel> MyQuery(list of parameters)
        {
           using (MyDataContext TheDC = new MyDataContext())
           {
              var TheQueryResult = (from f in TheDC.Fruits
                                    ......).ToList();

              return TheQueryResult;
           }
        }

        public List<SomeObject> AnotherQuery(some other parameters) {...}
 }

Now I think I know that this calls for dependency injection where the data context is passed in as a parameter but I’m not sure on the syntax. How do you reuse queries using dependency injection to make them work on two different databases? Right now I’m using a using statement and I want to keep this pattern; is that possible if I inject the DC as a parameter?

Thanks.

  • 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-06-14T17:48:24+00:00Added an answer on June 14, 2026 at 5:48 pm

    Since you already have a lot of code in place, probably the simplest thing to do is to inject a factory:

    public interface IMyDataContextFactory
    {
        MyDataContext CreateNewContext();
    }
    

    All the code will roughly stay the same:

    public List<SomeObjectModel> MyQuery(params)
    {
       using (var TheDC = this.factory.CreateNewContext())
       {
          var TheQueryResult = (from f in TheDC.Fruits
                                ......).ToList();
    
          return TheQueryResult;
       }
    }
    

    You can let the injected IMyDataContextFactory decide how to construct a MyDataContext instance (based on the user). This would be trivial.

    In the end it will probably be better to inject a MyDataContext (or an abstraction such as IUnitOfWork) into consumers, but this changes everything completely. Since this class is passed in from the outside, the consumer isn’t responsible anymore for disposing it, but someone else is. Although disposing such instance isn’t that hard with most DI container. It gets harder though when you want to share the same MyDataContext instance over multiple consumers (within the same web request for instance) and where do you call SubmitChanges?

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a web application that uses TONS of javascript, and as usual, there
I have a web application that uses a library which resides in TOMCAT_HOME/common/lib. This
I have created small test web application which makes use of LINQ to SQL.
I have a web application that uses a local SQL Server Express database (a.k.a.
I have an application that uses linq-to-sql with Sql Server Express 2008. When I
I have a web application that uses AJAX to grab JSON data from the
I have a web application that uses fixed css width. (1280px). With jquery, I
I have a web application that uses AzMan authorization to grant different functionality to
I have a web application that uses two databases. DB1 Users perform their CRUD
I have a web application that uses the CDO Message object to email reports.

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.