这是我的两个简化实体代码第一外键冲突
public class Team
{
public int TeamId { get; set; }
public string Name { get; set; }
public User User { get; set; }
public int UserId { get; set; }
}
团队实体配置:
HasRequired(t => t.User)
.WithOptional(u => u.Team);
用户等级:
public class User
{
public int UserId { get; set; }
public string Username { get; set; }
public Team Team { get; set; }
public int TeamId { get; set; }
}
我做了简单的演示控制台应用程序,将用户插入到数据库然后得到它的主键来确保外键在数据库中。
static void Main(string[] args)
{
var test = new InsertTest();
var userId = test.InsertUser();
test.InsertTeam(userId);
}
public int InsertUser()
{
var user = new User();
user.Username = "test1";
user.Email = "[email protected]";
user.Name = "test";
user.LastName = "Test";
user.Password = "123";
user.ConfirmPassword = "123";
UnitOfWork.UseRepository.Insert(user);
UnitOfWork.Save();
var userdB = UnitOfWork.UseRepository.Get().Where(u => u.Name == "test").FirstOrDefault();
return userdB.UserId;
}
public void InsertTeam(int userId)
{
var team = new Team();
team.Name = "Test";
team.UserId = userId;
UnitOfWork.TeamRepository.Insert(team);
UnitOfWork.Save();
}
但是我仍然在将数据库插入团队时出现外键冲突。真的没有任何想法下一步该怎么做
唯一的例外是: INSERT语句冲突与外键约束“FK_dbo.Teams_dbo.Users_TeamId”。冲突发生在数据库“幻想”,表“dbo.Users”,列'UserId'。 该声明已被终止。
你可以列出你的实际的异常?它应该有更多的细节可以帮助我们。 – Tim
我将它添加到了问题 – Dolja
您的模型在逻辑上不正确。一个团队可以有很多用户。有一对一的接球 – CodeNotFound