Имам следните модели
public class User
{
public int UserID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string FacebookID { get; set; }
public string GoogleID { get; set; }
public string TwitterID { get; set; }
public bool Admin { get; set; }
public bool Authorized { get; set; }
public virtual Comment Comment { get; set; }
public virtual CommentReply CommentReply { get; set; }
public virtual Project Project { get; set; }
public virtual ProjectVote ProjectVote { get; set; }
public virtual CommentReplyVote CommentReplyVote { get; set; }
public virtual CommentVote CommentVote { get; set; }
public virtual ProjectCoverVote ProjectCoverVote { get; set; }
}
public class Comment
{
[Key]
public int CommentID { get; set; }
public int ProjectDocID { get; set; }
public int UserID { get; set; }
public string Text { get; set; }
public string Annotation { get; set; }
public string Quote { get; set; }
public string Start { get; set; }
public string End { get; set; }
public string StartOffset { get; set; }
public string EndOffset { get; set; }
public DateTime DateCreated { get; set; }
public virtual ICollection<CommentVote> CommentVote { get; set; }
public virtual ICollection<CommentReply> CommentReply { get; set; }
public virtual ProjectDoc ProjectDoc { get; set; }
public virtual User User { get; set; }
}
След това използвах това като част от началния метод в първите миграции на код на обект:
context.Users.AddOrUpdate(i => i.FirstName,
new User { UserID = 1, FirstName = "Bob", LastName = "Dole", Email = "[email protected]", FacebookID = "123123124123", Admin = true, Authorized = true },
new User { UserID = 2, FirstName = "Dale", LastName = "Dole", Email = "[email protected]", FacebookID = "123123124123", Admin = false, Authorized = true }
);
context.Comments.AddOrUpdate(i => i.CommentID,
new Comment { CommentID = 1, ProjectDocID = 1, UserID = 1, Text = "This is a comment", DateCreated = DateTime.Parse("Dec 03, 2011 12:00:00 PM") }
);
Това е грешката, която получавам.
System.Data.SqlClient.SqlException:
The INSERT statement conflicted with the FOREIGN KEY constraint
"FK_dbo.Comment_dbo.User_CommentID". The conflict occurred in database
"TEST_ba6946e96d174b7bac9543ba614c8cf8", table "dbo.User", column 'UserID'.
Ако коментирам опита за добавяне на реда за коментари, той работи добре за моята таблица Projects, която има поле UserID. Помогне? Ако забележите несвързани грешки или неща, които трябва да знам, моля, не се колебайте да ги посочите.
User
да има колона за идентичностUserId
, така че стойностите в скрипта да се игнорират? (И потребителят с Id = 1 е изтрит) - person Gert Arnold   schedule 14.12.2012UserID = 1
и вProject
s? - person Gert Arnold   schedule 14.12.2012var u = new User { UserID = 1, ...
и в коментар:User = u
. - person Gert Arnold   schedule 14.12.2012