我想使用简单的LINQ语句在数据库中保存记录。我发现不可能在linq语句中使用Convert.ToInt32
,如下所示:
using (var context = new Stc.LeadTracker.DataModel.Models.DBNameContext())
{
var newLead = new DataModel.Models.LeadRequest();
newLead.FormId = Convert.ToInt32(formId);
newLead.Request = queryString;
newLead.Success = true;
newLead.RetryCount = 0;
newLead.CreatedBy = nvCollection["iw"];
newLead.CreatedDateTime = DateTime.Now;
context.LeadRequests.Add(newLead);
context.SaveChanges();
leadId = newLead.LeadRequestId;
}
我当然可以在LINQ语句之前进行转换,很想知道这是否是我唯一的选择。
答案 0 :(得分:0)
在你到达using语句之前我会转换Convert.ToInt32(formId)。
Linq不喜欢转换语句,具体取决于ORM
检查一下 Problem with converting int to string in Linq to entities
答案 1 :(得分:0)
你尝试过使用int.Parse()或int.TryParse()吗?另外,为什么你不能使用Convert.ToInt32()?你有任何错误吗?
答案 2 :(得分:-1)
您可以像这样强制转换变量: (INT)formid
你必须检查" formId"可以转换为int。
using (var context = new Stc.LeadTracker.DataModel.Models.DBNameContext())
{
var newLead = new DataModel.Models.LeadRequest();
newLead.FormId = (int)formId;
newLead.Request = queryString;
newLead.Success = true;
newLead.RetryCount = 0;
newLead.CreatedBy = nvCollection["iw"];
newLead.CreatedDateTime = DateTime.Now;
context.LeadRequests.Add(newLead);
context.SaveChanges();
leadId = newLead.LeadRequestId;
}