这是我的代码:
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;
我该如何清除这个?
我认为您直接尝试将“Serenity.Data.Int32Field”分配给可空(int?)整数...... 如果您愿意,您可以显式地将“TeamRow.Fields.TeamId”部分转换为可为空的 int 吗?使用该值。
team.TeamId = (TeamRow.Fields.TeamId == null)
? null
: TeamRow.Fields.TeamId.Value;
或者您应该检查 Serenity 框架的文档,如果它们提供了任何明确的方法来执行此操作。
TeamRow.Fields 没有任何数据。我认为你想做的是:
team.TeamId = row.TeamId;
当然,如果 MyRow 是 TeamRow,这是正确的方法。