我的代码中出现此错误。我该如何清除这个?

问题描述 投票:0回答:2

这是我的代码:

public MyResponse InsertTeam(MyRow Row) 
{ 
    try 
    { 
        var connection = SqlConnections.NewByKey("Cred"); 

        /* Getting Insert to LogBook table */
        TeamRow team = new TeamRow();
        team.TeamId = TeamRow.Fields.TeamId;
        
        var teamId = User.GetIdentifier();
        
        team.CreatedBy = User.GetIdentifier();
        team.CreatedOn = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));
    }
    catch 
    { }

    return new SaveResponse();
}

运行时出现此错误:

无法将类型“Serenity.Data.Int32Field”隐式转换为“int?”。

在这一行:

team.TeamId = TeamRow.Fields.TeamId;

我该如何清除这个?

c# sql database error-handling serenity
2个回答
0
投票

我认为您直接尝试将“Serenity.Data.Int32Field”分配给可空(int?)整数...... 如果您愿意,您可以显式地将“TeamRow.Fields.TeamId”部分转换为可为空的 int 吗?使用该值。

team.TeamId = (TeamRow.Fields.TeamId == null)
              ? null 
              : TeamRow.Fields.TeamId.Value;

或者您应该检查 Serenity 框架的文档,如果它们提供了任何明确的方法来执行此操作。


0
投票

TeamRow.Fields 没有任何数据。我认为你想做的是:

team.TeamId = row.TeamId;

当然,如果 MyRow 是 TeamRow,这是正确的方法。

© www.soinside.com 2019 - 2024. All rights reserved.