0

我有一个基于数据库的第一个应用程序,所以我没有自制的模态,只有自动创建的模态。我想在单个视图中显示 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 那样做,但我需要创建一个模式,我可以把它放在一个视图中显示:

设施图片(一侧) | 设施名称(一侧) | 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; }
{

我不太确定我应该在这里做什么!

4

1 回答 1

0

是的,您将需要一个自定义模型,因为您想要显示多种类型。你需要有类似的东西:

public class FacilityModel
{
    public Facility Facility { get; set; }
    public List<FacilityDetails> FacilityDetails { get; set; }
}

根据您上面的课程并假设您已经有一个 Facility 课程。然后您需要更改您的 LINQ 以首先获取 Facility 详细信息:

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
            };


于 2012-05-01T08:44:05.933 回答