我有一个数据库基础第一个应用程序,所以我没有这样的自制模态,只是自动创建的模式。我想在单个视图中显示html表/列表中单行选择中的一个和多个部分,这里是在重新创建的MS Access查询中工作得很好的SQL, - 一些括号:
SELECT Facilitiy.FacilityName, Facilitiy.FacilityImage, FacilityDetail.FacilityDetailDescription
FROM FacilityDetail INNER JOIN Facilitiy ON FacilityDetail.FacilityDetailID = Facilitiy.FacilityFK
WHERE FacilityFK = id
LINQ给了我正确的许多部分:
from fd in db.FacilityDetails
join f in db.Facilities on fd.FacilityID equals f.FacilityFK
where f.B FacilityFK == id
select f
我有点希望能像SQL那样做,但我需要创建一个我可以放在视图中显示的模态:
FacilityImage(一面)| FacilityName(一面)| FacilityDetailDescription(多方)
我听说我可以通过做这样的事情来做到这一点???
from fd in db.FacilityDetails.Include("Facilities")
但似乎没有任何区别!
这让我相信我需要创建一个新的自定义模型?如果是这样我怎么写呢?
我试过这样的事情,但是我无法让它发挥作用。
public class FacilitiyDetails
{
public string FacilitiesDescription { get; set; }
public string FacilitiesImage { get; set; }
public string BeachFacilitiesDescription { get; set; }
{
我不太清楚我应该在这做什么!
答案 0 :(得分:0)
是的,您需要一个自定义模型,因为您想要显示多种类型。你需要有类似的东西:
public class FacilityModel
{
public Facility Facility { get; set; }
public List<FacilityDetails> FacilityDetails { get; set; }
}
基于您上面的课程并假设您已经拥有Facility课程。然后,您需要更改LINQ以首先获取设施详细信息:
var facility = (from f in db.Facilities
where f.FacilityID == id
select f)
.FirstOrDefault(); //just being safe here,
//if it's null, you'll want to escape out of
//the code below
然后,你需要通过以下方式获得该设施的所有等效FacilityDetails
:
var facilityDetails = (from fd in db.FacilityDetails
where fd.FacilityFK == id
select fd).ToList()
然后,您可以通过执行以下操作来创建模型的新实例:
var model = new FacilityModel
{
Facility = facility,
FacilityDetails = facilityDetails
};