code_junkie

Extend a LINQ entity-class with constructor methods and make that entity-class inherit from it's DataContext class

Nov 11th, 2011
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.62 KB | None | 0 0
  1. namespace Xxx
  2. {
  3. public class User : Xxx.DataContext
  4. {
  5. public enum SiteAccessRights
  6. {
  7. NotRegistered = 0,
  8. Registered = 1,
  9. Administrator = 3
  10. }
  11.  
  12. private Xxx.Entities.User _user;
  13.  
  14. public Int32 ID
  15. {
  16. get
  17. {
  18. return this._user.UsersID;
  19. }
  20. }
  21.  
  22. public Xxx.User.SiteAccessRights AccessRights
  23. {
  24. get
  25. {
  26. return (Xxx.User.SiteAccessRights)this._user.UsersAccessRights;
  27. }
  28.  
  29. set
  30. {
  31. this._user.UsersAccessRights = (Int32)value;
  32. }
  33. }
  34.  
  35. public String Alias
  36. {
  37. get
  38. {
  39. return this._user.UsersAlias;
  40. }
  41.  
  42. set
  43. {
  44. this._user.UsersAlias = value;
  45. }
  46. }
  47.  
  48.  
  49. public User(Int32 userID)
  50. {
  51. var user = (from u in base.Users
  52. where u.UsersID == userID
  53. select u).FirstOrDefault();
  54.  
  55. if (user != null)
  56. {
  57. this._user = user;
  58. }
  59. else
  60. {
  61. this._user = new Xxx.Entities.User();
  62.  
  63. base.Users.InsertOnSubmit(this._user);
  64. }
  65. }
  66.  
  67.  
  68. public User(Xxx.User.SiteAccessRights accessRights, String alias)
  69. {
  70. var user = (from u in base.Users
  71. where u.UsersAccessRights == (Int32)accessRights && u.UsersAlias == alias
  72. select u).FirstOrDefault();
  73.  
  74. if (user != null)
  75. {
  76. this._user = user;
  77. }
  78. else
  79. {
  80. this._user = new Xxx.Entities.User
  81. {
  82. UsersAccessRights = (Int32)accessRights,
  83. UsersAlias = alias
  84. };
  85.  
  86. base.Users.InsertOnSubmit(this._user);
  87. }
  88. }
  89.  
  90.  
  91. public void DeleteOnSubmit()
  92. {
  93. base.Users.DeleteOnSubmit(this._user);
  94. }
  95. }
  96. }
  97.  
  98. namespace Xxx.Entities
  99. {
  100. public partial class User : IDisposable
  101. { DataContext ctx;
  102.  
  103. public static GetUserByID(int userID)
  104. { var ctx = new DataContext();
  105. var user = ctx.Users.FirstOrDefault(u=>u.UsersID == userID);
  106.  
  107. if (user == null)
  108. {
  109. user = new User();
  110. ctx.Users.InsertOnSubmit(user);
  111. }
  112.  
  113. user.ctx = ctx;
  114. return user;
  115. }
  116.  
  117. public void Dispose() { if (ctx != null) ctx.Dispose(); }
  118. }
  119. }
Add Comment
Please, Sign In to add comment