C# 将字符串转换为长类型并在asp.net MVC 5 C中的linq查询中使用#

C# 将字符串转换为长类型并在asp.net MVC 5 C中的linq查询中使用#,c#,linq,asp.net-mvc-5,entity-framework-5,C#,Linq,Asp.net Mvc 5,Entity Framework 5,如何在linq查询中将字符串转换为长类型 我当前的代码给了我以下错误 LINQ to Entities无法识别方法“Int64到Int64(System.String)”方法,因此无法转换此方法 转换为存储表达式 我的代码如下所示 var query = (from _employerdetails in _entities.Organisations select new EmployerDetails {

如何在linq查询中将字符串转换为长类型

我当前的代码给了我以下错误

LINQ to Entities无法识别方法“Int64到Int64(System.String)”方法,因此无法转换此方法 转换为存储表达式

我的代码如下所示

    var query = (from _employerdetails in _entities.Organisations
                 select new EmployerDetails
                 {
                     Id = _employerdetails.Id,
                     RefNo = _employerdetails.Refno,
                     Surname = _employerdetails.Surname,
                     TradingName = _employerdetails.TradingName,
                     CompanyRegistrationNumber = _employerdetails.CompanyRegistrationNumber,
                     PhysicalAddress = _employerdetails.BusAddr1,
                     PostalAddress = _employerdetails.BusPostalAddr1,
                     Status = _employerdetails.Status,
                     SETACode = _employerdetails.SetaCode,
                     TransactionDate = ( from _lasttransaction in _entities.LevyTransactions
                                         where Convert.ToInt64(_lasttransaction.OrgId) ==_employerdetails.Id
                                         select _lasttransaction.TransactionDate).Max()
                 });

请帮帮我。

您可以尝试在查询之外进行转换

long OrgId = Convert.ToInt64(_lasttransaction.OrgId);
因此,您的查询将如下所示

var query = (from _employerdetails in _entities.Organisations
                 select new EmployerDetails
                 {
                     Id = _employerdetails.Id,
                     RefNo = _employerdetails.Refno,
                     Surname = _employerdetails.Surname,
                     TradingName = _employerdetails.TradingName,
                     CompanyRegistrationNumber = _employerdetails.CompanyRegistrationNumber,
                     PhysicalAddress = _employerdetails.BusAddr1,
                     PostalAddress = _employerdetails.BusPostalAddr1,
                     Status = _employerdetails.Status,
                     SETACode = _employerdetails.SetaCode,
                     TransactionDate = ( from _lasttransaction in _entities.LevyTransactions
                                         where OrgId  ==_employerdetails.Id
                                         select _lasttransaction.TransactionDate).Max()
                 });

您可以尝试在查询之外进行转换

long OrgId = Convert.ToInt64(_lasttransaction.OrgId);
因此,您的查询将如下所示

var query = (from _employerdetails in _entities.Organisations
                 select new EmployerDetails
                 {
                     Id = _employerdetails.Id,
                     RefNo = _employerdetails.Refno,
                     Surname = _employerdetails.Surname,
                     TradingName = _employerdetails.TradingName,
                     CompanyRegistrationNumber = _employerdetails.CompanyRegistrationNumber,
                     PhysicalAddress = _employerdetails.BusAddr1,
                     PostalAddress = _employerdetails.BusPostalAddr1,
                     Status = _employerdetails.Status,
                     SETACode = _employerdetails.SetaCode,
                     TransactionDate = ( from _lasttransaction in _entities.LevyTransactions
                                         where OrgId  ==_employerdetails.Id
                                         select _lasttransaction.TransactionDate).Max()
                 });

您应该将
\u lasttransaction.OrgId
保存在适当的变量中

(通过转换:*,因为它是字符串,所以我更喜欢
TryParse
,而不是直接转换,例如:
Int64.TryParse(string,Int64)


就在这个查询之前,然后在LINQ查询中使用这个变量,而不是直接使用
lasttransaction
的属性,因为它在从字符串转换为Long时会导致问题您应该将
\u lasttransaction.OrgId
保留在适当的变量中

(通过转换:*,因为它是字符串,所以我更喜欢
TryParse
,而不是直接转换,例如:
Int64.TryParse(string,Int64)


就在这个查询之前,然后在LINQ查询中使用这个变量,而不是直接使用
lasttransaction
的属性,因为在从字符串转换为Long时,它会导致问题

它的可能重复给我同样的错误。LINQ to Entities无法识别方法“Int64到Int64(System.String)”方法,并且此方法无法转换为存储表达式。它会给我相同的错误。LINQ to Entities无法识别方法“Int64 to Int64(System.String)”方法,并且此方法无法转换为存储表达式Tripathis如何在外部调用_lasttransaction,因为它在TransactionDate内部声明。你能给我举个例子吗?Tripathis这是如何在外部调用_lasttransaction的,因为它在TransactionDate内部声明。你能给我举个例子吗。