我有以下查询来使用 Simple.Data.SqlServer 中的 Join 语句从数据库中读取记录。
var productLineItem = (ProductLineItem) (database.Products.All()
.Select(
database.Products.Name,
database.Products.Price
)
.Join(database.BarCodes)
.On(database.BarCodes.ProductID == database.Products.ID)
.Where(database.BarCodes.BarCode == barCode).FirstOrDefault())
请注意我必须如何使用 FirstOrDefault 方法以及将整个语句包装到括号中,然后将其转换为对象。我不喜欢这种方式。我认为 Simple.Data 应该能够像下面的代码一样工作
ProductLineItemproductLineItem = database.Products.Get()
.Select(
database.Products.Name,
database.Products.Price
)
.Join(database.BarCodes)
.On(database.BarCodes.ProductID == database.Products.ID)
.Where(database.BarCodes.BarCode == barCode);
在上面的示例中,我使用 Get 是因为我知道我将只获得一条记录而不是记录列表,但是此查询不起作用。
如何使用 Simple.Data 急切加载查询而不使用那些丑陋的方法来实现我想要的?