我是 MVC 和 LINQ 的新手,但我们正在一个新项目中使用它们,我需要一些帮助。我们有一个正在创建的 MVC 4 应用程序,我需要获取特定站点的详细信息,但信息位于 2 个不同的数据库中。DB1 是大部分信息所在的位置,而 DB2 只有 2 个我需要的部分。简而言之,DB1 具有表 Sites、SiteAddress、Address 和 ProductVersions。 DB2 作为状态、产品、版本和产品版本。 在 SQL 中,我可以使用以下内容来获取我需要的内容:
SELECT db1_s.SiteName, db1_s.PhoneNumber, db1_a.Address, db1_a.Address2, db1_a.City, db2_st.StateName, db1_a.ZipCode, db2_v.VersionNumber, db1_pv.ProductVersionID
FROM DB1.dbo.Sites db1_s
INNER JOIN DB1.dbo.SiteAddress db1_sa ON db1_s.SiteID = db1_sa.SiteID
INNER JOIN DB1.dbo.Address db1_a ON db1_sa.AddressID = db1_a.AddressID
INNER JOIN DB1.dbo.SiteProductVersions db1_spv ON db1_s.SiteID = db1_spv.SiteID
INNER JOIN DB1.dbo.ProductVersions db1_pv ON db1_spv.ProductVersionID = db1_pv.ProductVersionID
INNER JOIN DB2.dbo.States db2_st ON db1_a.StateID = db2_st.StateID
INNER JOIN DB2.dbo.ProductVersions db2_pv ON db1_spv.ProductVersionID = db2_pv.ProductVersionID
INNER JOIN DB2.dbo.Versions db2_v ON db2_pv.VersionID = db2_v.VersionID
WHERE db1_s.SiteID = 35
我做了一些研究,发现真的没有办法使用 LINQ 来连接不同数据库中的表,而是使用 Lists 并将它们组合起来,这就是我遇到困难的地方。
我为视图创建了一个模型,如下所示:
public class SiteDetailsViewModel
{
public string SiteName { get; set; }
public string Address { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
public string PhoneNumber { get; set; }
public int ProductVersionId { get; set; }
public List<Version> Versions { get; set; }
}
该视图仅包含用于显示数据的标签,版本除外。我希望它是可用版本的下拉列表(这就是我创建列表的原因)。
谁能给我一些关于将其转换为 LINQ 并将其用作我的视图的数据模型的最佳方法的指导?