C# 对象中的多个项
c#:EF关系 .net核心 下午好 我正在努力为营养师创造服务。 我想使Db允许: 一种饮食可以有多种膳食,但 一餐可以是多种饮食 现在我有C# 对象中的多个项,c#,sql,database,entity-framework,asp.net-core,C#,Sql,Database,Entity Framework,Asp.net Core,c#:EF关系 .net核心 下午好 我正在努力为营养师创造服务。 我想使Db允许: 一种饮食可以有多种膳食,但 一餐可以是多种饮食 现在我有 public class DietList { public Guid DietListId { get; set; } [Display(Name = "Nazwa diety")] public string DietName { get; set; } public Date
public class DietList
{
public Guid DietListId { get; set; }
[Display(Name = "Nazwa diety")]
public string DietName { get; set; }
public DateTime AddedDataTime { get; set; }
public string Describe { get; set; }
public List<Meal> MealId { get; set; }
}
公共类目录
{
公共Guid DietListId{get;set;}
[显示(Name=“Nazwa diety”)]
公共字符串名称{get;set;}
public DateTime addedatatime{get;set;}
公共字符串描述{get;set;}
公共列表MealId{get;set;}
}
及
公共课餐
{
公共Guid MealId{get;set;}
[显示(Name=“Nazwa Posiłku”)]
公共字符串名称{get;set;}
[显示(Name=“Typ Posiłku”)]
公共字符串MealType{get;set;}
[显示(Name=“Składniki”)]
公共字符串组件{get;set;}
公共列表DietListId{get;set;}
}
但它抛出了一个例外:
无法确定“List”类型的导航属性“DietList.MealId”表示的关系。
这个问题有什么解决办法吗?根据您的描述,饮食和膳食之间有着多对多的关系。 它需要一个额外的/中间的表来存储实体的链接,比如
dietfines
。
然后可以在DbContext
类中指定关系
你可以参考
属性命名看起来有点混乱。集合名称应为复数形式,表示:
Public List<Meal> Meals { get; set; }
公共列表{get;set;}
根据您的描述,饮食
和膳食
之间存在多对多关系。
它需要一个额外的/中间的表来存储实体的链接,比如dietfines
。
然后可以在DbContext
类中指定关系
你可以参考
属性命名看起来有点混乱。集合名称应为复数形式,表示:
Public List<Meal> Meals { get; set; }
公共列表{get;set;}
是dotnet core还是.Net Framework?信息不足,但我认为您需要更改导航属性的名称。这是一个.Net core,我添加了相关信息。是的,请从MealId->MealList和DietListId->DietList更改您的名称。这可能不是你的问题,但它让问题变得更清楚。还有,是否有流畅的代码?如果您使用的是实体框架核心,那么在没有中间表的情况下,您无法对多对多关系进行建模。阅读了解更多信息。你必须创建一个模型类来链接你的饮食列表
和膳食
实例。是dotnet core还是.Net Framework?没有足够的信息,但我认为你需要更改导航属性的名称。这是一个.Net core,我添加了相关信息是的,从MealId->MealList和DietListId->DietList更改您的姓名。这可能不是你的问题,但它让问题变得更清楚。还有,是否有流畅的代码?如果您使用的是实体框架核心,那么在没有中间表的情况下,您无法对多对多关系进行建模。阅读了解更多信息。您必须创建一个模型类来链接您的DietList
和diet
实例。