C# 实体框架中的一对多关系,无需先编写代码
我需要配置一对多关系,而无需在实体框架中使用代码优先设计。我知道这是一个愚蠢的限制,但这是要求分配的任务。我已经用这些表创建了数据库C# 实体框架中的一对多关系,无需先编写代码,c#,sql,asp.net,entity-framework,C#,Sql,Asp.net,Entity Framework,我需要配置一对多关系,而无需在实体框架中使用代码优先设计。我知道这是一个愚蠢的限制,但这是要求分配的任务。我已经用这些表创建了数据库 CREATE TABLE [dbo].[MissionQuestions] ( [MissionQuestionId] INT IDENTITY (1, 1) NOT NULL, [missionID] INT NOT NULL , [userID] INT NOT
CREATE TABLE [dbo].[MissionQuestions] (
[MissionQuestionId] INT IDENTITY (1, 1) NOT NULL,
[missionID] INT NOT NULL ,
[userID] INT NOT NULL,
[missQuestion] VARCHAR (MAX) NOT NULL,
[missAnswer] VARCHAR (MAX) NULL,
PRIMARY KEY CLUSTERED ([MissionQuestionId] ASC),
CONSTRAINT [FK_MissionQuestions_Missions] FOREIGN KEY ([missionID]) REFERENCES [Missions]([missionID]),
CONSTRAINT [FK_MissionQuestions_Users] FOREIGN KEY ([userID]) REFERENCES [Users]([userID])
);
CREATE TABLE [dbo].[Missions] (
[missionID] INT IDENTITY (1, 1) NOT NULL,
[missionName] VARCHAR (50) NOT NULL,
[missionPresName] VARCHAR (30) NOT NULL,
[missionLanguage] VARCHAR (30) NOT NULL,
[missionClimate] VARCHAR (30) NOT NULL,
[missionReligion] VARCHAR (30) NOT NULL,
[missionImg] VARCHAR (30) NOT NULL,
PRIMARY KEY CLUSTERED ([missionID] ASC)
);
我也有一个用户表,但我不认为它在这个问题上是相关的
这是我的模型课
[Table("Missions")]
public class Missions
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int missionID { get; set; }
public String missionName { get; set; }
public String missionPresName { get; set; }
public String missionLanguage { get; set; }
public String missionClimate { get; set; }
public String missionReligion { get; set; }
public String missionImg { get; set; }
public virtual ICollection<MissionQuestions> MisisonQuestions { get; set; }
}
[Table("MissionQuestions")]
public class MissionQuestions
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int missionQuestionID { get; set; }
public String missQuestion { get; set; }
public String missAnswer { get; set; }
[ForeignKey("Missions")]
public virtual int missionID { get; set; }
public virtual Missions Missions { get; set; }
[ForeignKey("Users")]
public virtual int userID { get; set; }
public virtual Users Users { get; set; }
}
[表格(“任务”)]
公共类任务
{
[关键]
[数据库生成(DatabaseGeneratedOption.Identity)]
public int-missionID{get;set;}
公共字符串missionName{get;set;}
公共字符串missionPresName{get;set;}
公共字符串missionLanguage{get;set;}
公共字符串missionClimate{get;set;}
公共字符串任务{get;set;}
公共字符串missionImg{get;set;}
公共虚拟ICollection错误查询{get;set;}
}
[表(“任务问题”)]
公开课任务问题
{
[关键]
[数据库生成(DatabaseGeneratedOption.Identity)]
公共int任务问题ID{get;set;}
公共字符串错误问题{get;set;}
公共字符串错误回答{get;set;}
[外键(“任务”)]
公共虚拟int任务ID{get;set;}
公共虚拟任务{get;set;}
[外国密钥(“用户”)]
公共虚拟int用户标识{get;set;}
公共虚拟用户用户{get;set;}
}
为了简单地描述这些表格,这里应该有一些“任务”,人们可以在这些任务中询问和回答有关每个任务的问题。因此,每个任务都有0-*“任务问题”
我以为我把一切都安排好了,但我犯了这个错误
MissionQuestions\u Missions\u Source::多重性在关系“MissionQuestions\u Missions”中的角色>“MissionQuestions\u Missions\u Source”中无效。“>因为依赖角色属性不是键属性,所以依赖角色的多重性的上限>必须是“*”
我猜错误在于数据库的设置方式,这可能是通过先使用代码来设计数据库来修复的,但我正在处理一个任务,在这个任务中,我被告知不要先使用代码。您知道如何指定要匹配的多重性吗?能否向我们展示SSMS中捕获的这两个表的图表?能否展示DbContext代码以及何时出错?能否展示SSMS中捕获的这两个表的图表?能否展示DbContext代码以及何时出错