我遇到了一个问题,我试图在我的存储库中构建一个 Linq 查询,该查询包含来自数据库中不同表的多个连接,然后将其作为对象返回给我的控制器以显示。我得到的错误是:“指定的演员表无效。”
问题部分似乎是当我尝试从查询中传递对象时,我不确定如何解决这个问题。(我对 Web 开发还比较陌生,并试图学习基础知识)。
以下是我的存储库中的代码:
public ListingModel GetListing(int listingId)
{
var query = from listing in listingsTable
where listing.ListingID == listingId
join feature
in featuresTable on listing.ListingID equals feature.ListingID into features
from f in features.DefaultIfEmpty()
join avail
in availabilityTable on listing.ListingID equals avail.ListingID into availability
from a in availability.DefaultIfEmpty()
join image
in imageTable on listing.ListingID equals image.ListingID into images
from i in images.DefaultIfEmpty()
select new ListingModel
{
Listing = listing,
Features = features,
Availability = availability,
Images = images
};
return query.FirstOrDefault();
}
如果需要,这里是 ListingModel 类:
public class ListingModel
{
public Listing Listing { get; set; }
public IEnumerable<Feature> Features { get; set; }
public IEnumerable<Availability> Availability { get; set; }
public IEnumerable<Image> Images { get; set; }
}
当我在 LinqPad 中尝试查询时,它可以正常工作并完全按照我想要的方式返回数据,因此当我尝试将对象传回时似乎出错了。我已经尝试了一些方法,每次我似乎都遇到了同样的错误;我很难确定是什么原因造成的。提前感谢您提供的任何帮助。