Je suis nouveau sur LinQ et ces lambdas me paraissent délicats :(
J'ai une table où il y a deux colonnes. Prénom et nom. Je remplis un gridview en utilisant LinQ.
protected void Page_Load(object sender, EventArgs e)
{
myLinQtoSQLClassDataContext objDataContext = new myLinQtoSQLClassDataContext();
var allUserList = from CurrentUser in objDataContext.Users.Where(c => c.Is_Deleted != false)
select new
{
CurrentUser.First_Name,
CurrentUser.Last_Name,
CurrentUser.Email_ID,
CurrentUser.GUID
};
GridView1.DataSource = allUserList;
GridView1.DataBind();
}
Je peux récupérer les valeurs en utilisant LinQ mais je veux concaténer le prénom et le nom avec un espace entre les deux.
La requête SQL équivalente que j'essaie d'acquérir serait la suivante:
Select First_name + ' ' + Last Name as Username, Email_ID, GUID
From tbl_Users where Is_Deleted != false
Comment puis-je y parvenir à travers l'expression lambda?
Vous pouvez utiliser la concaténation de chaînes:
select new
{
Username = CurrentUser.First_Name + " " + CurrentUser.Last_Name,
CurrentUser.Email_ID,
CurrentUser.GUID
};
Essayer
select new
{
FullName = CurrentUser.First_Name + " " + CurrentUser.Last_Name,
CurrentUser.Email_ID,
CurrentUser.GUID
};
var allUserList = from CurrentUser in objDataContext.Users.Where(c => c.Is_Deleted != false)
select new
{
Name = CurrentUser.First_Name + " " + CurrentUser.Last_Name,
CurrentUser.Email_ID,
CurrentUser.GUID
};
Vous devez donner votre type anonyme 'clés' (propriétés en lecture seule):
select new
{
Name = CurrentUser.First_Name + " " + CurrentUser.Last_Name,
};
Et ensuite, concaténez la chaîne lors de l'attribution du nom d'utilisateur.
jetez un oeil à ceci Méthode CLR de la cartographie des fonctions canoniques
. Net fournit de nombreuses méthodes pouvant être directement mappées sur les requêtes, vous devrez en utiliser une pour ajouter deux chaînes.
afin que vous puissiez utiliser est
select new
{
Username = Concat(first_Name,Last_Name),
CurrentUser.Email_ID,
CurrentUser.GUID
};
Voici une autre variante qui fonctionne et ne figure pas dans la liste:
var allUserList = objDataContext.Users.Where(c => c.Is_Deleted != false).
Select(s => new{First_Name + " " + Last_Name, Email_ID, GUID});