繁体   English   中英

LINQ to SQL:SubmitChanges()不起作用?

[英]LINQ to SQL: SubmitChanges() does not work?

这是我的代码

var bt = new BachtuocvnDataContext();
        var matchedTeams = (from lt in bt.Bet_Leagues_Teams
                         where lt.LeagueID == leagueID
                         select (lt)).Single();
        matchedTeams.TeamID = teamID;
        bt.SubmitChanges(ConflictMode.ContinueOnConflict);

它不会更新表。 传统查询效果很好,我在这里找到了类似的问题:

LINQ不更新.SubmitChanges()

但是我检查发现Bet_Leagues_Teams确实有一个主键。

Bet_Leagues_Teams班:

int ID (primary key)
int LeagueID;
int TeamID;

啊,我的错误。 我忘记了Bet_Leagues_Teams可能不包含所需的记录。 我必须检查记录是否存在,然后更新它,否则它不存在,必须将其添加到表中。 真可惜 原谅我浪费你的时间。 谢谢。

using(BachtuocvnDataContext bt = new BachtuocvnDataContext() ) 
{ 
    Bet_Leagues_Teams matchedTeam = 
        bt.Bet_Leagues_Teams.Where(lt => lt.LeagueID == leagueID)
        .SingleOrDefault(); 

    if(matchedTeam != null)
    {
        matchedTeam.TeamID = teamID; 
        bt.SubmitChanges(ConflictMode.ContinueOnClonflict); 
    }
} 
using( var bt = new BachtuocvnDataContext() )
{
    var matchedTeam = bt.Bet_Leagues_Teams.Single( lt => lt.LeagueID == leagueID );
    matchedTeam.TeamID = teamID;
    bt.SubmitChanges( ConflictMode.ContinueOnClonflict );
}

请注意,如果存在多个匹配元素, Single()将引发异常(如果您的schemea正确建模了“联盟”的概念,则将存在该异常)

您可能要在那里使用First()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM