C# { 转换=(来自_dataContext.FileConversions中的fc) 在fc上的_dataContext.conversionstatus中加入cs。Id等于cs.FileConversionId 在fc上的_dataContext.ReturnSettings中加入rts。ReturnSettingId等于rts.Id 在rts上的_dataContext.Returns中加入r.ReturnId等于r.Id 在r.EntityId等于e.Id的_dataContext.Entities中加入e 在e.AccountId等于a.Id的情况下加入一个_dataContext.Accounts 其中((fc.CurrentStatusCode==ConversionStatusCode.Processing)| |(fc.CurrentStatusCode==ConversionStatusCode.Ready)| |(fc.CurrentStatusCode==ConversionStatusCode.Error)|| (fc.CurrentStatusCode==ConversionStatusCode.ValidationErrors)| |(fc.CurrentStatusCode==ConversionStatusCode.Pending)) 选择fc).ToList().Where(p=>GetDataByCondition(p,sSearch)).OrderByDescending(sort).Distinct().Skip(iDisplayStart).Take(iDisplayLength).ToList(); } 返回转换; } 私有bool GetDataByCondition(文件转换、文件转换、字符串搜索) { 如果(sSearch==null) { sSearch=String.Empty; } if(fileConversion.FileName.Contains)(sSearch) ||fileConversion.ReturnSetting.Return.Entity.Account.Name.Contains(sSearch) ||fileConversion.conversionstatus.Any(s=>s.UserName.Contains(sSearch)| | | s.Date.ToShortDateString().Contains(sSearch)) ||fileConversion.CurrentStatusCode.ToString()包含(sSearch)) { 返回true; } 返回false; }

C# { 转换=(来自_dataContext.FileConversions中的fc) 在fc上的_dataContext.conversionstatus中加入cs。Id等于cs.FileConversionId 在fc上的_dataContext.ReturnSettings中加入rts。ReturnSettingId等于rts.Id 在rts上的_dataContext.Returns中加入r.ReturnId等于r.Id 在r.EntityId等于e.Id的_dataContext.Entities中加入e 在e.AccountId等于a.Id的情况下加入一个_dataContext.Accounts 其中((fc.CurrentStatusCode==ConversionStatusCode.Processing)| |(fc.CurrentStatusCode==ConversionStatusCode.Ready)| |(fc.CurrentStatusCode==ConversionStatusCode.Error)|| (fc.CurrentStatusCode==ConversionStatusCode.ValidationErrors)| |(fc.CurrentStatusCode==ConversionStatusCode.Pending)) 选择fc).ToList().Where(p=>GetDataByCondition(p,sSearch)).OrderByDescending(sort).Distinct().Skip(iDisplayStart).Take(iDisplayLength).ToList(); } 返回转换; } 私有bool GetDataByCondition(文件转换、文件转换、字符串搜索) { 如果(sSearch==null) { sSearch=String.Empty; } if(fileConversion.FileName.Contains)(sSearch) ||fileConversion.ReturnSetting.Return.Entity.Account.Name.Contains(sSearch) ||fileConversion.conversionstatus.Any(s=>s.UserName.Contains(sSearch)| | | s.Date.ToShortDateString().Contains(sSearch)) ||fileConversion.CurrentStatusCode.ToString()包含(sSearch)) { 返回true; } 返回false; },c#,string,linq,datetime,C#,String,Linq,Datetime,感谢所有在这篇文章中给出答案的人,我找到了我需要的解决方案。简单地说,当我在“格式需要”之前检索数据时,我会将所有数据转换成一个列表,从那一刻起,我就可以使用C#工具操作数据(在DateTime和String之间转换,等等),除了无用的数据(与我的条件不匹配的数据) public List GetConversionsForDataTables(字符串搜索、int-iDisplayStart、int-idisplayslength、Func排序、bool-asc) { System.Linq.E

感谢所有在这篇文章中给出答案的人,我找到了我需要的解决方案。简单地说,当我在“格式需要”之前检索数据时,我会将所有数据转换成一个列表,从那一刻起,我就可以使用C#工具操作数据(在DateTime和String之间转换,等等),除了无用的数据(与我的条件不匹配的数据)

public List GetConversionsForDataTables(字符串搜索、int-iDisplayStart、int-idisplayslength、Func排序、bool-asc)
{
System.Linq.Expressions.Expression predicate=GetPredicateForFileConversion(sSearch);
//获取和排序结果
列表转换=新列表();
如果(asc)
{
var pages2skip=(iDisplayStart);
var sqlRequest=new System.Data.SqlClient.SqlCommand();
转换=(来自_dataContext.FileConversions中的fc)
在fc上的_dataContext.conversionstatus中加入cs。Id等于cs.FileConversionId
在fc上的_dataContext.ReturnSettings中加入rts。ReturnSettingId等于rts.Id
在rts上的_dataContext.Returns中加入r.ReturnId等于r.Id
在r.EntityId等于e.Id的_dataContext.Entities中加入e
在e.AccountId等于a.Id的情况下加入一个_dataContext.Accounts
其中((fc.CurrentStatusCode==ConversionStatusCode.Processing)| |(fc.CurrentStatusCode==ConversionStatusCode.Ready)| |(fc.CurrentStatusCode==ConversionStatusCode.Error)||
(fc.CurrentStatusCode==ConversionStatusCode.ValidationErrors)| |(fc.CurrentStatusCode==ConversionStatusCode.Pending))
选择fc).ToList().Where(p=>GetDataByCondition(p,sSearch)).OrderBy(sort).Distinct().Skip(pages2skip).Take(iDisplayLength).ToList();
}
其他的
{
转换=(来自_dataContext.FileConversions中的fc)
在fc上的_dataContext.conversionstatus中加入cs。Id等于cs.FileConversionId
在fc上的_dataContext.ReturnSettings中加入rts。ReturnSettingId等于rts.Id
在rts上的_dataContext.Returns中加入r.ReturnId等于r.Id
在r.EntityId等于e.Id的_dataContext.Entities中加入e
在e.AccountId等于a.Id的情况下加入一个_dataContext.Accounts
其中((fc.CurrentStatusCode==ConversionStatusCode.Processing)| |(fc.CurrentStatusCode==ConversionStatusCode.Ready)| |(fc.CurrentStatusCode==ConversionStatusCode.Error)||
(fc.CurrentStatusCode==ConversionStatusCode.ValidationErrors)| |(fc.CurrentStatusCode==ConversionStatusCode.Pending))
选择fc).ToList().Where(p=>GetDataByCondition(p,sSearch)).OrderByDescending(sort).Distinct().Skip(iDisplayStart).Take(iDisplayLength).ToList();
}
返回转换;
}
私有bool GetDataByCondition(文件转换、文件转换、字符串搜索)
{
如果(sSearch==null)
{
sSearch=String.Empty;
}
if(fileConversion.FileName.Contains)(sSearch)
||fileConversion.ReturnSetting.Return.Entity.Account.Name.Contains(sSearch)
||fileConversion.conversionstatus.Any(s=>s.UserName.Contains(sSearch)| | | s.Date.ToShortDateString().Contains(sSearch))
||fileConversion.CurrentStatusCode.ToString()包含(sSearch))
{
返回true;
}
返回false;
}

您是否尝试过
string.Format(“{0:MM-dd-yyyy}等”,日期)
?是的,但可能我犯了一些错误?我尝试将此格式插入到谓词中,它抛出异常“LINQ to Entities不识别方法'System.String ToString(System.DateTime)'方法,并且此方法无法转换为存储表达式。”有什么想法吗?可能与否重复,这是“转换以显示”,我的任务是“转换为每个查询在数据库中搜索”您是否尝试过
string.Format(“{0:MM-dd-yyyy}等”,日期)
?是的,但可能我犯了一些错误?我尝试将此格式插入谓词,它引发异常“LINQ-to-Entities不识别方法”Sy
        System.Linq.Expressions.Expression<Func<FileConversion, bool>> predicate =
GetPredicateForFileConversion(sSearch);
        //fetch and sort results
        List<FileConversion> conversions = new List<FileConversion>();
        if (asc)
        {
            var pages2skip = (iDisplayStart);

            var sqlRequest = new System.Data.SqlClient.SqlCommand();
            sqlRequest.CommandText = "SELECT * FROM FileConversions JOIN "

            conversions = (from fc in _dataContext.FileConversions
                           join cs in _dataContext.ConversionStatuses on fc.Id equals cs.FileConversionId
                           join rts in _dataContext.ReturnSettings on fc.ReturnSettingId equals rts.Id
                           join r in _dataContext.Returns on rts.ReturnId equals r.Id
                           join e in _dataContext.Entities on r.EntityId equals e.Id
                           join a in _dataContext.Accounts on e.AccountId equals a.Id
                           where ((fc.CurrentStatusCode == ConversionStatusCode.Processing) || (fc.CurrentStatusCode == ConversionStatusCode.Ready) || (fc.CurrentStatusCode == ConversionStatusCode.Error) ||
                            (fc.CurrentStatusCode == ConversionStatusCode.ValidationErrors) || (fc.CurrentStatusCode == ConversionStatusCode.Pending))
                           select fc).Where(predicate).OrderBy(sort).Distinct().Skip(pages2skip).Take(iDisplayLength).ToList();
        }
private System.Linq.Expressions.Expression<Func<FileConversion, bool>> GetPredicateForFileConversion(String sSearch)
    {
        System.Linq.Expressions.Expression<Func<FileConversion, bool>> predicate = null;
        if (sSearch != null && !Convert.ToString(sSearch).Equals(""))            
        {
           predicate = row => row.FileName.Contains(sSearch)
                || row.ReturnSetting.Return.Entity.Account.Name.Contains(sSearch) || Convert.ToString(row.CreationDate).Contains(sSearch)
                || row.ConversionStatuses.Any(s => s.UserName.Contains(sSearch));
        }
        else
        {
            predicate = row => true;
        }
        return predicate;
    }
@yourDateTime.FormattedReviewDate.ToString("MMM dd,yyyy")
public string FormattedReviewDate
{
    get { return ReviewDate.ToString("MMM dd,yyyy"); }
}
public List<FileConversion> GetConversionsForDataTables(String sSearch, int iDisplayStart, int iDisplayLength, Func<FileConversion, string> sort, bool asc)
    {

        System.Linq.Expressions.Expression<Func<FileConversion, bool>> predicate = GetPredicateForFileConversion(sSearch);
        //fetch and sort results
        List<FileConversion> conversions = new List<FileConversion>();
        if (asc)
        {
            var pages2skip = (iDisplayStart);

            var sqlRequest = new System.Data.SqlClient.SqlCommand();

            conversions = (from fc in _dataContext.FileConversions
                           join cs in _dataContext.ConversionStatuses on fc.Id equals cs.FileConversionId
                           join rts in _dataContext.ReturnSettings on fc.ReturnSettingId equals rts.Id
                           join r in _dataContext.Returns on rts.ReturnId equals r.Id
                           join e in _dataContext.Entities on r.EntityId equals e.Id
                           join a in _dataContext.Accounts on e.AccountId equals a.Id
                           where ((fc.CurrentStatusCode == ConversionStatusCode.Processing) || (fc.CurrentStatusCode == ConversionStatusCode.Ready) || (fc.CurrentStatusCode == ConversionStatusCode.Error) ||
                            (fc.CurrentStatusCode == ConversionStatusCode.ValidationErrors) || (fc.CurrentStatusCode == ConversionStatusCode.Pending))
                           select fc).ToList().Where(p => GetDataByCondition(p, sSearch)).OrderBy(sort).Distinct().Skip(pages2skip).Take(iDisplayLength).ToList();
        }
        else
        {
            conversions = (from fc in _dataContext.FileConversions
                           join cs in _dataContext.ConversionStatuses on fc.Id equals cs.FileConversionId
                           join rts in _dataContext.ReturnSettings on fc.ReturnSettingId equals rts.Id
                           join r in _dataContext.Returns on rts.ReturnId equals r.Id
                           join e in _dataContext.Entities on r.EntityId equals e.Id
                           join a in _dataContext.Accounts on e.AccountId equals a.Id
                           where ((fc.CurrentStatusCode == ConversionStatusCode.Processing) || (fc.CurrentStatusCode == ConversionStatusCode.Ready) || (fc.CurrentStatusCode == ConversionStatusCode.Error) ||
                            (fc.CurrentStatusCode == ConversionStatusCode.ValidationErrors) || (fc.CurrentStatusCode == ConversionStatusCode.Pending))
                           select fc).ToList().Where(p => GetDataByCondition(p, sSearch)).OrderByDescending(sort).Distinct().Skip(iDisplayStart).Take(iDisplayLength).ToList();

        }
        return conversions;
    }

    private bool GetDataByCondition(FileConversion fileConversion, string sSearch)
    {
        if (sSearch == null)
        {
            sSearch = String.Empty;
        }
        if (fileConversion.FileName.Contains(sSearch)
            || fileConversion.ReturnSetting.Return.Entity.Account.Name.Contains(sSearch)
            || fileConversion.ConversionStatuses.Any(s => s.UserName.Contains(sSearch) || s.Date.ToShortDateString().Contains(sSearch))
            || fileConversion.CurrentStatusCode.ToString().Contains(sSearch))
        {
            return true;
        }
        return false;
    }