【发布时间】:2011-11-13 21:26:34
【问题描述】:
我是 EF 代码第一主体的新手,目前不知道该怎么做。我有 2 个 POCO 课程。
public class Problem
{
public int ProblemID { get; set; }
public int UserID { get; set; }
public int CategoryID { get; set; }
public int RatingID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public double Latitude { get; set; }
public double Longitude { get; set; }
public int State { get; set; }
public DateTime CreatedOn { get; set; }
public virtual Rating Rating { get; set; }
public virtual Category Category { get; set; }
public virtual User User { get; set; }
public virtual ICollection<Picture> Pictures { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
}
和
public class User
{
public int UserID { get; set; }
public int RoleID { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string SocialHandle { get; set; }
public DateTime RegisteredOn { get; set; }
public virtual Role Role { get; set; }
public virtual ICollection<Point> Points { get; set; }
public virtual ICollection<Problem> Problems { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
}
我的数据库创建正常,但是当我尝试使用自定义初始化程序在其中初始化一些数据时,我收到以下错误:
在表上引入 FOREIGN KEY 约束“Problem_User” “问题”可能导致循环或多个级联路径。指定开 DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
无法创建约束。查看以前的错误。
这是我的初始化程序:
protected override void Seed(CleanStreets context)
{
var adminRole = new Role { Name = "Administrator", RoleID = 0 };
var moderatorRole = new Role { Name = "Moderator", RoleID = 1 };
var userRole = new Role { Name = "User", RoleID = 2 };
context.Roles.Add(adminRole);
context.Roles.Add(userRole);
context.Roles.Add(moderatorRole);
var admin = new User { Name = "admin", Surname = "admin", Role = adminRole, Email = "fake@fake.com", Password = "", RegisteredOn = DateTime.Now, SocialHandle = null };
var user = new User { Name = "user", Surname = "user", Role = userRole, Email = "fake@fake2.com", Password = "", RegisteredOn = DateTime.Now, SocialHandle = null };
context.Users.Add(admin);
context.Users.Add(user);
var categoryOne = new Category { Title = "Komunalni problemi", CategoryID = 0 };
var categoryTwo = new Category { Title = "Ostali problemi", CategoryID = 1 };
context.Categories.Add(categoryOne);
context.Categories.Add(categoryTwo);
var problem = new Problem { Category = categoryOne, Title = "Prvi testni problem", Description = "Ovo je testni opis", Latitude = 45.5, Longitude = 15.5, State = 0, CreatedOn = DateTime.Now, User = user };
context.Problems.Add(problem);
base.Seed(context);
}
我做错了什么?提前谢谢!
【问题讨论】:
标签: entity-framework foreign-keys ef-code-first cascade