最初にモデルを使用します。
実在物:
class User
{
Guid UserId{get;set;}
Guid RefererUserId {get;set;}
User RefereUser {get;set;}
}
データコンテキスト:
public class DataContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.HasRequired(x => x.ReferrerUser)
.WithMany()
.HasForeignKey(x => x.ReferrerUserId).WillCascadeOnDelete(false);
}
public DbSet<User> Users { get; set; }
}
データベースを初期化します:
MembershipCreateStatus Status;
Membership.CreateUser("Demo", "123456", "demo@demo.com", null, null, true, out Status);
Roles.CreateRole("Admin");
Roles.AddUserToRole("Demo", "Admin");
DataContext db = new DataContext();
var a = db.Users.Where(x => x.Email == "demo@demo.com").FirstOrDefault();
a.MoneyRUB = 100;
a.MoneyUSD = 100;
db.SaveChanges();
エラーが発生します:
INSERTステートメントがFOREIGNKEYSAMETABLE制約「User_ReferrerUser」と競合していました。データベース「Kamikaze」、テーブル「dbo.Users」、列「UserId」で競合が発生しました。ステートメントは終了されました。
私は何が間違っているのですか?