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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T21:58:17+00:00 2026-05-10T21:58:17+00:00

I am currently working on my first asp.net mvc application. I am trying to

  • 0

I am currently working on my first asp.net mvc application. I am trying to drink the kool-aid of all the the sample projects I see and trying to use the repository design pattern.

I have a interface called IUserRepository that looks like the following:

public interface IUserRepository {     IUser Add(IUser user);     IQueryable<IUser> Fetch();     IUser Update(IUser obj);     void Delete(IUser obj); } 

My IUser interface has a bunch of properties and properties for CreatedBy, CreatedDate, ModifiedBy and ModifiedDate.

My UserRepository looks like the following:

public class UserRepository : IUserRepository {     private GimliDataContext db = null;      public UserRepository()     {         db = new GimliDataContext();     }      public UserRepository(string connection)     {         db = new GimliDataContext(connection);     }      public IUser Add(IUser obj)     {         db.Users.InsertOnSubmit((User)obj);         db.SubmitChanges();         return obj;     }      public IQueryable<IUser> Fetch()     {         return db.Users.Select(b => b as IUser);     }      public IUser Update(IUser obj)     {         var user = db.Users.Where(u => u.UserId == obj.UserId).Single();         user.Name = obj.Name;         user.Password = obj.Password;         user.Email = obj.Email;         user.IsLocked = obj.IsLocked;         user.IsDisabled = obj.IsDisabled;         db.SubmitChanges();         return user;     }      public void Delete(IUser obj)     {         var user = db.Users.Where(u => u.UserId == obj.UserId).Single();         db.Users.DeleteOnSubmit(user);         db.SubmitChanges();     } } 

In my current web applications when my users login I stash my customer business principal on the current thread and when my business objects update I just user the Name property on the Identity property of the current business principal and it works great.

So what’s my question? Should I just do the same thing within the Add or Update methods of my repository OR would it be better to actually pass in an IUser reference to the current User and just grab the UserId from there?

Appreciate any input!

  • 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. 2026-05-10T21:58:18+00:00Added an answer on May 10, 2026 at 9:58 pm

    First I would suggest making your repository interface generic. Instead of your IUserRepository try this:

    public interface IRepository<T> {     T Add(T entity);     IQueryable<T> Fetch();     T Update(T entity);     void Delete(T entity); } 

    That way you can use this interface for any of your domain models.

    As far as your question is concerned (CreadedBy and ModifiedBy props), personally, that sounds like business logic and would be better suited inside of a Service class. But I would do it like you first said. Take the currently authenticated user’s user id and just put it in there, instead of passing in another IUser to get the ID of. But if it was in a service you would then be able to mock up a different service for unit testing, with out the hassle of having to actually log into the system (having the mocked service supply a mock IUser).

    I myself am a bit new to this so if there are any better suggestions I would also like to read about them.

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

Sidebar

Related Questions

First some background, I am currently working on a relatively large Asp.Net MVC application
I'm working on my first ASP.NET MVC 3 application and I've got two Controllers
I am currently working on an ASP.NET MVC2 project. This is the first time
I am trying to create an ASP.NET MVC application, using Spring.NET to inject dependencies.
I'm trying to get an ASP.NET MVC app working... I should have known it
I'm working on an asp.net MVC application. I have a class that wraps a
I am creating an ASP.NET MVC 3 e-commerce website and I am currently working
I'm working on an application using ASP.NET 4.0 and MVC 2.0. If it's in
Im currently trying to refactor a project(asp.net mvc) that doesnt have any separation at
I have an ASP.NET WebForms application that I'm trying to switch to MVC for

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.