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

  • SEARCH
  • Home
  • 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 44777
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T15:42:19+00:00 2026-05-10T15:42:19+00:00

Whats the best design pattern to use for LINQ and type tables that exist

  • 0

Whats the best design pattern to use for LINQ and type tables that exist in SQL.

I have tables in SQL that constrain values to type values, and I want to be able to use this in my C# code as strongly typed values.

My current approach for a ‘PackageStatus’ type is as follows:

SQL Table

PackageStatusType (int)
desc (varchar)

C# Class – using LINQ

public class PackageStatusType {     static PackageStatusType()     {          var lookup = (from p in DataProvider.ShipperDB.PackageStatus                       select p).ToDictionary(p => p.Desc);           Unknown = lookup['Unknown'];         LabelGenerated = lookup['Label generated'];         ReadyForCollection = lookup['Ready for pickup'];         PickedUp = lookup['Picked up'];         InTransit = lookup['In Transit'];         DeliveryAttempted = lookup['Delivery attempted'];         DeliveredByHand = lookup['By hand'];         DeliveryFailed = lookup['Delivery failed'];         Delivered = lookup['Delivered'];         Voided = lookup['Voided'];     }      public static ShipperDB.Model.PackageStatus Unknown;     public static ShipperDB.Model.PackageStatus LabelGenerated;     public static ShipperDB.Model.PackageStatus ReadyForCollection;     public static ShipperDB.Model.PackageStatus PickedUp;     public static ShipperDB.Model.PackageStatus InTransit;     public static ShipperDB.Model.PackageStatus DeliveryAttempted;     public static ShipperDB.Model.PackageStatus DeliveryFailed;     public static ShipperDB.Model.PackageStatus Delivered;     public static ShipperDB.Model.PackageStatus DeliveredByHand;     public static ShipperDB.Model.PackageStatus Voided; } 

I then can put PackageStatusType.Delivered in my C# code and it will correctly reference the right LINQ entity.

This works fine, but makes me wonder:

a) how can i make this more efficient b) why doesn’t Microsoft seem to provide anything to create strongly typed type tables c) is my database design even a good one? d) what is everyone else doing!

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. 2026-05-10T15:42:20+00:00Added an answer on May 10, 2026 at 3:42 pm

    Linq to SQL allows you to map a string or int column in a database to an enumeration in your C# code. This allows you to let Linq to SQL to map these values for you when you select from the database. In this case, I would change my package status column to be either an int column with the values from the enumeration or a string that represents the values from the enumeration.

    In your case, I would have a PackageStatus enumeration with the different values that you specified, and then using the ORM designer or SQLMetal, map that column to that enumeration. The only caveat is that the string values in the column in the database must match the values in the enumeration as Linq to SQL will use Enum.Parse() to map the string values from the database to the enumeration or make sure that the int values in the database match the values from the enumeration.

    This is more efficient as you don’t even need to map the lookup table at all in the code.

    http://msdn.microsoft.com/en-us/library/bb386947.aspx#EnumMapping describes how this works.

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

Sidebar

Ask A Question

Stats

  • Questions 51k
  • Answers 51k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • added an answer Should I have one base style sheet for the whole… May 11, 2026 at 6:29 am
  • added an answer I was able to do it by making new TestCase… May 11, 2026 at 6:29 am
  • added an answer Use the ord function http://ca.php.net/ord eg. <?php $var = 'nÖ§9q1Fª£ˆæÓ§Œ_»—Ló]j';… May 11, 2026 at 6:29 am

Top Members

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

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.