jde*_*tor 1 foreign-keys foreign-key-relationship linq-to-sql
这是重要的代码.
TournamentTeam newTeam = new TournamentTeam();
TournamentTeams.InsertOnSubmit(newTeam);
SubmitChanges();
TournamentParticipant newSignup = new TournamentParticipant
{
CheckedIn = false,
TournamentID = tournamentId,
UserID = participant.UserID,
TeamID = newTeam.TeamId
};
TournamentParticipants.InsertOnSubmit(newSignup);
SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
TournamentParticipants.TeamId在TournamentTeam.TeamID上有一个fk关系,TeamID是一个标识列
我不明白的是,当TournamentTeam获得插入时,它会获取新的身份值.即使我调试代码,新的注册也会收到新的团队ID.但是当涉及到生成插入时,它完全避免了这个值,并在select语句之前插入,它抓取了新的标识列.
exec sp_executesql N'INSERT INTO [dbo].[TournamentParticipants]([UserID], [TournamentID], [CheckedIn]) VALUES (@p0, @p1, @p2)
SELECT [t0].[TeamID] FROM [dbo].[TournamentParticipants] AS [t0] WHERE ([t0].[UserID] = @p3) AND ([t0].[TournamentID] = @p4)',N'@p0 int,@p1 int,@p2 bit,@p3 int,@p4 int',@p0=29805,@p1=247,@p2=0,@p3=29805,@p4=247
Run Code Online (Sandbox Code Playgroud)
如何让linq to sql使用我指定的团队id的值,或者在insert语句之前生成select语句?
而不是设置TeamID,将Team实体设置为您刚刚创建的实体.延迟SubmitChanges插入两者,然后它将在插入完成后修复id.
TournamentTeam newTeam = new TournamentTeam();
TournamentTeams.InsertOnSubmit(newTeam);
TournamentParticipant newSignup = new TournamentParticipant
{
CheckedIn = false,
TournamentID = tournamentId,
UserID = participant.UserID,
Team = newTeam
};
TournamentParticipants.InsertOnSubmit(newSignup);
SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3641 次 |
| 最近记录: |