c# - 将 Simple.Data.Query 转换为 POCO 对象

标签 c# simple.data

我有以下查询,使用 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 预加载查询而不使用那些丑陋的方法来实现我想要的?

最佳答案

我不确定您理想中想要的东西是否可能,但有一个 Cast()您至少可以使用 Linq 方法以函数式风格继续查询并删除您不喜欢的括号:

var 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)
    .Cast<ProductLineItem>()
    .FirstOrDefault();

关于c# - 将 Simple.Data.Query 转换为 POCO 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20469426/

相关文章:

C# 错误消息 "Property can not be assigned to -- it is read only."

c# - UTF-8 不适用于将 byte[] 转换为字符串

c# - Windows 手机控制

asp.net - 对于 CRUD 来说,以下哪一个是更好的实践? Simple.Data 还是 Dapper?

c# - microsoft.visualbasic.fileio 不存在

c# - 运行时显示错误的字体

asp.net-mvc-3 - Simple.Data 多对多问题

simple.data - 有没有办法记录 Simple.Data 实际执行的 SQL 查询?

mysql - 具有非自动增量主键的 Simple.Data (uuid_short)

c# - 如何转换为 simple.data 中的 IEnumerable<Guid>?