Est-il possible d'étendre des classes d'entités LINQ-to-SQL avec des méthodes-constructeurs et dans le même but; rendre cette classe d'entité héritée de sa classe de contexte de données? - Essentiellement la conversion de la classe d'entité en un objet métier.Etendre une classe d'entités LINQ avec des méthodes constructor et rendre cette classe d'entité héritée de sa classe DataContext
C'est le modèle que je suis actuellement en utilisant:
namespace Xxx
{
public class User : Xxx.DataContext
{
public enum SiteAccessRights
{
NotRegistered = 0,
Registered = 1,
Administrator = 3
}
private Xxx.Entities.User _user;
public Int32 ID
{
get
{
return this._user.UsersID;
}
}
public Xxx.User.SiteAccessRights AccessRights
{
get
{
return (Xxx.User.SiteAccessRights)this._user.UsersAccessRights;
}
set
{
this._user.UsersAccessRights = (Int32)value;
}
}
public String Alias
{
get
{
return this._user.UsersAlias;
}
set
{
this._user.UsersAlias = value;
}
}
public User(Int32 userID)
{
var user = (from u in base.Users
where u.UsersID == userID
select u).FirstOrDefault();
if (user != null)
{
this._user = user;
}
else
{
this._user = new Xxx.Entities.User();
base.Users.InsertOnSubmit(this._user);
}
}
public User(Xxx.User.SiteAccessRights accessRights, String alias)
{
var user = (from u in base.Users
where u.UsersAccessRights == (Int32)accessRights && u.UsersAlias == alias
select u).FirstOrDefault();
if (user != null)
{
this._user = user;
}
else
{
this._user = new Xxx.Entities.User
{
UsersAccessRights = (Int32)accessRights,
UsersAlias = alias
};
base.Users.InsertOnSubmit(this._user);
}
}
public void DeleteOnSubmit()
{
base.Users.DeleteOnSubmit(this._user);
}
}
}
Mise à jour:
Notez que j'ai deux constructeur-méthodes dans ma classe User
. Je voudrais transférer ceux-ci à User
entité-classe et étendre la classe d'entité User
sur sa classe de contexte de données, de sorte que le contexte de données est disponible à la classe d'entité sur "new-up".
Espérons que cela a du sens.
Mes étiquettes correspondent très bien à la question, Omer. Merci. – roosteronacid
a mis à jour ma réponse –