這是我的兩個簡化實體代碼第一外鍵衝突
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