У меня есть 2 таблицы: Певица и песня как этотДобавить поддельный столбец Linq Entity Framework запрос
мне нужно извлечь песни с 1 певца или просто получить песню ею ид, я использую это:
db.Songs.Find(id); // get song by its ID
db.Songs.Where(x => x.SingerID == id); // get all songs by singer's ID
и вернуть эту песню
$id: "2",
Id: 1,
NAME: "....",
IMAGE: ".....jpg",
URL: ".....mp3",
SingerID: 1
но я хотите скрыть SingerID, вместо этого я хочу вернуть столбец «SingerName». Я использовал это:
db.Songs.Where(x => x.SingerID == id).Select(song => new { song, song.Singer.NAME });
, но результат стал:
song: {
$id: "2",
Id: 1,
NAME: "....",
IMAGE: ".....jpg",
URL: ".....mp3",
SingerID: 1
}
NAME: "SingerName"
Так как я могу получить результат, как это - все свойства равны (скрыть SingerID и заменить SingerName):
$id: "2",
Id: 1,
NAME: "....",
IMAGE: ".....jpg",
URL: ".....mp3",
SingerName: "SingerName etc"
да, но если когда мне нужно изменить таблицу Song (то есть добавить новый столбец «Linkshare» для песни), я должен обновить все мои запросы с новыми свойствами? – user3448806
Да, потому что в этом случае вы создаете новый анонимный объект. Кроме того, это может быть хорошей привычкой вступать (указать возвращаемые столбцы), чтобы свести к минимуму количество возвращаемых данных. Например, что, если кто-то еще добавит в таблицу несколько столбцов, которые вы НЕ в этом случае хотите вернуть в свой запрос. – ozz