当前位置: 首页 > 知识库问答 >
问题:

如何实现这个数据库结构?

闾丘卓
2023-03-14

我想创建一个食谱网站,在那里你可以添加/修改/删除食谱,每个模型都应该有一个配料的列表,与所需的量的那个配料。

我试图使用这样的dict:public idictionary indirections{get;set;} ,但结果是EF Core并不真正喜欢dicts的思想,所以我试图创建一个“映射器”模型,如下所示:

public class RecipeIngredient
    {
        public int Id { get; set; }

        public int IngredientId { get; set; }
        public Ingredient Ingredient { get; set; }

        public int Quantity { get; set; }
    }

问题是,它仍然没有真正起作用。我不能添加菜谱,也不能删除,因为它进入了一个永远循环。

你将如何实施它?

谢谢

共有1个答案

江雅懿
2023-03-14

试试看:

public class Recipe
    {
     public int Id { get; set; }
     public string Name { get; set; }
     public virtual ICollection<RecipeIngredient> RecipeIngredients
    }

public class Ingridient
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public virtual ICollection<RecipeIngredient> RecipeIngredients
    }


public class RecipeIngredient
    {
        public int Id { get; set; }

        public int RecipeId { get; set; }
        public Recipe Recipe{ get; set; }

        public int IngredientId { get; set; }
        public Ingredient Ingredient { get; set; }

        public int Quantity { get; set; }
    }

// and db context:

modelBuilder.Entity<RecipeIngredient>(entity =>
            {
                entity.HasOne(d => d.Recipe)
                    .WithMany(p => p.RecipeIngredients)
                    .HasForeignKey(d => d.RecipeId)
                    .OnDelete(DeleteBehavior.ClientSetNull);
               

                entity.HasOne(d => d.Ingredient)
                    .WithMany(p => p.RecipeIngredients)
                    .HasForeignKey(d => d.IngredientId);
                    
            });
 类似资料:
  • 我试图为自己创建一个使用DynamoDB的简单应用程序。我从未在高级级别上使用过非关系型数据库,只是在这里和那里存储一个值。 该应用程序是一个记录器。我将记录一些东西,迪纳摩将记录日期并计算一天。 例如,一个用户今天记录多件事情,它只会说今天的日期和记录的时间:5 然后,我可以进行查询,以获取过去一周/一天/一个月内所有logged_times的总和。 我的问题是如何构造一个NoSQL数据库来完成

  • 本文向大家介绍如何利用FluentMigrator实现数据库迁移,包括了如何利用FluentMigrator实现数据库迁移的使用技巧和注意事项,需要的朋友参考一下 FluentMigrator Fluent Migrator是一个基于.NET的迁移框架,你可以像使用Ruby on Rails Migrations一样使用它。Fluent Migrator的最新版本是3.13版,官网地址https:

  • 我正在设计一个购物车, 我的购物车里有X产品。每个产品都与一个商店相关联。 示例产品1由Shop1销售 我以XML的形式获取产品1的详细信息(Shop1中的可用性和价格[当产品售出或价格发生变化时]) 这应该如何处理? 我将项目分为两个部分: 1:项目1 我创建了一个基于表单的应用程序,所有商店都使用它 销售产品时,商店管理员将输入产品详细信息(可用单元数…等)并提交。我将其转换为XML并保存到表

  • 本章讲解如何使用 Rust 进行一些常用数据结构的实现。实现的代码仅作示例用,并不一定十分高效。真正使用的时候,请使用标准库或第三方成熟库中的数据结构。

  • 本文向大家介绍spring结合redis如何实现数据的缓存,包括了spring结合redis如何实现数据的缓存的使用技巧和注意事项,需要的朋友参考一下 1、实现目标   通过redis缓存数据。(目的不是加快查询的速度,而是减少数据库的负担)   2、所需jar包     注意:jdies和commons-pool两个jar的版本是有对应关系的,注意引入jar包是要配对使用,否则将会报错。因为co