EF linq inner join

1、model

  注意点1:List<ProductSet> Products的Products必须继承ICollection<T>;

  注意点2:ProductSet.CategoryID属性,要XXXXXID;

    [Table("ProductSet")]
    public class ProductSet
    {
        public int ID { get; set; }

        [Required]
        [StringLength(50)]
        public string Name { get; set; }

        public int CategoryID { get; set; }

        public decimal Price { get; set; }
    }
View Code
    [Table("Category")]
    public class Category
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public List<ProductSet> Products { get; set; }
    }
View Code

2、执行

        static void Main(string[] args)
        {
            using (KTStoreModel context = new KTStoreModel())
            {
                context.Database.Log = Console.WriteLine;

                var products = from category in context.Category
                               from product in category.Products
                               select product;
                Console.WriteLine("执行");
                foreach (var p in products)
                {
                    Console.WriteLine(p.Name);
                }
            }
            Console.Read();
        }

 ================================================

相对于上面需要List<ProductSet> Products和ProductSet.CategoryID,用from in join in on equals更加明确,也更加方便

            using (var context = new KTStoreModel())
            {
                context.Database.Log = Console.WriteLine;

                var query = from product in context.ProductSet
                            join category in context.Category on product.CategoryID equals category.Id
                            select new
                            {
                                ID = product.ID,
                                Name = product.Name,
                                Category = category.Name,
                                Price = product.Price
                            };
                Console.WriteLine("执行");
                foreach (var product in query)
                {
                    Console.WriteLine($"ID:{product.ID}\tName:{product.Name}\tCategory:{product.Category}\tPrice:{product.Price}");
                }

            }

 

posted @ 2022-03-02 14:17  江境纣州  阅读(89)  评论(0编辑  收藏  举报