休眠和查询示例

本文关键字:查询 休眠 | 更新日期: 2023-09-27 18:36:51

class Customer
{
    public int ID { get; set; }
    public string Name { get; set; }
}
class Order
{
    public int ID { get; set; }
    public string Product { get; set; }
}
var customers = new Customer[]
{
    new Customer{ID = 5, Name = "Sam"},
    new Customer{ID = 6, Name = "Dave"},
    new Customer{ID = 7, Name = "Julia"},
    new Customer{ID = 8, Name = "Sue"}
};
var orders = new Order[]
{
    new Order{ID = 5, Product = "Book"},
    new Order{ID = 6, Product = "Game"},
    new Order{ID = 7, Product = "Computer"},
    new Order{ID = 8, Product = "Shirt"}
};
IEnumerable<Object> query = 
    from c in customers
    join o in orders on c.ID equals o.ID
    select new { c.Name, o.Product };
IList<Object> AA = query.ToList<Object>();

这个返回显示在图片中的新对象 [但是我想以客户身份访问此对象并订购如何以"客户对象.属性名称和订单.属性名称"的形式获取数据,而不是获取带有字符串的数组。 我可以获取具有两个对象(如客户和订单对象)的数据列表,以便我可以使用该对象访问这些数据吗?它returns aa[0] = {name=" sam ", product=" Book"},但我想要类似aa[0] = {Customer.Name , Order.product } [1]

休眠和查询示例

您可以尝试返回映射的对象。考虑到您有映射的实体,请尝试如下操作:

var result = (from c in customers
             join o in orders on c.ID equals o.ID
             select new{ Customer = c, Product = o.Product })
             .ToList();

然后,您可以将result对象作为匿名对象的集合进行访问,其中您具有 Customer 属性和具有实体的Product