Ответ 1
Вы можете использовать конкатенацию строк:
select new
{
Username = CurrentUser.First_Name + " " + CurrentUser.Last_Name,
CurrentUser.Email_ID,
CurrentUser.GUID
};
Я новичок в LinQ, и эти лямбды кажутся мне сложными: (
У меня есть таблица, где есть два столбца. Имя и фамилия. Я заполняю gridview с помощью 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();
}
Я могу получить значения с помощью LinQ, но я хочу объединить имя и фамилию с промежутком между ними.
Эквивалентный SQL-запрос, который я пытаюсь выполнить, будет таким:
Select First_name + ' ' + Last Name as Username, Email_ID, GUID
From tbl_Users where Is_Deleted != false
Как я могу достичь этого с помощью выражения лямбда?
Вы можете использовать конкатенацию строк:
select new
{
Username = CurrentUser.First_Name + " " + CurrentUser.Last_Name,
CurrentUser.Email_ID,
CurrentUser.GUID
};
Попробуйте
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
};
Вы должны указать анонимный тип "ключи" (свойства только для чтения):
select new
{
Name = CurrentUser.First_Name + " " + CurrentUser.Last_Name,
};
И затем просто конкатенируйте строку при назначении имени пользователя.
взгляните на этот метод CLR для канонического отображения функций
.Net предоставляет множество методов, которые могут быть непосредственно сопоставлены с запросами. Чтобы использовать две строки, нужно использовать одну из них.
так что вы можете использовать
select new
{
Username = Concat(first_Name,Last_Name),
CurrentUser.Email_ID,
CurrentUser.GUID
};
Здесь другой вариант, который работает и не был указан:
var allUserList = objDataContext.Users.Where(c => c.Is_Deleted != false).
Select(s => new{First_Name + " " + Last_Name, Email_ID, GUID});
select new
{
Username = string.Format("{0} {1}", CurrentUser.First_Name, CurrentUser.Last_Name),
CurrentUser.Email_ID,
CurrentUser.GUID
};