У меня есть выпадающий список, который я пройти к виду через ViewBag:EF связанные выпадающий список данных
ViewBag.RoomTypeID = new SelectList(db.RoomType, "ID", "Type");
Это, очевидно, работает хорошо, но я хочу сделать что-то более сложное, и я с трудом найти, с чего начать.
В конечном счете, я хочу, чтобы раскрывающийся список отображал только те объекты RoomTypes, которые еще не были назначены (COUNT = 0) в отдельной таблице. Мои модели:
public class RoomType
{
[Key]
public int ID { get; set; }
[Display(Name = "Room Type")]
public string Type { get; set; }
public virtual ICollection<Room> Rooms { get; set; }
}
и ...
public class Room
{
[Key]
public Guid ID { get; set; }
[Required]
public int PropertyID { get; set; }
[Required]
public int RoomTypeID { get; set; }
//other properties removed for brevity
public virtual RoomType RoomType { get; set; }
public virtual Property Property { get; set; }
}
Предполагая, что моя собственность ID 100, я только хочу, чтобы показать типы номеров в списке, где есть не комната с PropertyID 100 с тем же номером.
Что я пытался сделать это:
ViewBag.RoomTypeID = new SelectList(db.RoomType.Where(r => r.ID = (db.Rooms.Where(r => r.PropertyID == 1))) , "ID", "Type");
Но я думаю, что мне нужно преобразовать в список ИНТ-х годов?
Спасибо, Гэвин
Но объект roomType не содержит PropertyID? После некоторого дополнительного чтения это похоже. Любой может дать мне то, что мне нужно – Gavin5511
My bad @ Gavin5511 Я обновил свой ответ с помощью 2 вариантов –
Вариант 1, похоже, не компилируется. Ошибка: «Нет перегрузки для метода« Где »принимает 3 аргумента? – Gavin5511