I have 3 tables:
Account: Id, Name
User: Id, AccountId, Name
UserDetail: Id, UserId, Phone
Entitites:
public partial class Account
{
public Account()
{
this.Users = new HashSet<User>();
}
public int Id{get;set;}
public string Name{get;set;}
public virtual ICollection<User> Users{get;set;}
}
public partial class UserDetail
{
public int Id{get;set;}
public string Phone {get;set;}
public virual User User {get;set;}
}
public partial class User
{
public User()
{
this.Accounts = new HashSet<Account>();
}
public int Id{get;set;}
public virtual ICollection<Account> Accounts {get;set;}
public virtual UserDetail UserDetail{get;set;}
}
As you can see, Account to User is an one to many relationship so my Account entity has Users DbSet. Whereas User to UserDetail is a one-to-one relationship.
I am currently trying to insert a user and userdetail record to an existing account. So my code looks like this:
var newUserDetail = new UserDetail();
newUserDetail.Phone = 014109842;
var newUser = new User();
newUser.Name = "John Smith";
newUser.UserDetail = newUserDetail;
var currentAccount = _dbContext.Accounts.First(a => a.Id == 100);
currentAccount.User.Add(newUser);
_dbContext.SaveChanges();
I'm getting the following error: "A dependent property in a ReferentialConstraint is mapped to a store-generated column. Column: 'Id'."
Thoughts?