Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我得到了在C中使用bool方法的错误消息#_C#_Linq_Lambda - Fatal编程技术网

C# 我得到了在C中使用bool方法的错误消息#

C# 我得到了在C中使用bool方法的错误消息#,c#,linq,lambda,C#,Linq,Lambda,我想得到一个bool来显示这个人是否在公司,并且代码如下,但是我得到了这个错误:methodsystem.String GetPresent_Status(Int32)不支持到SQL的转换 internal bool GetPresent_Status(int employeeID) { using (LinqDataContext context = DataContext) { var dateString = Common.

我想得到一个bool来显示这个人是否在公司,并且代码如下,但是我得到了这个错误:methodsystem.String GetPresent_Status(Int32)不支持到SQL的转换

 internal bool GetPresent_Status(int employeeID)
    {
        using (LinqDataContext context = DataContext)
        {
            var dateString = Common.Date.GregorianToPersian(DateTime.Now.Date, Common.Date.DateStringType.Short);
            var result = context.vwDailyWorks
                .Where(ss => ss.EmployeeID == employeeID && ss.Date ==dateString)
                .Select(t => t.Even_Odd).FirstOrDefault();
            if (Convert.ToInt16(result) == 0)
            {
                return false;
            }
            else
            {
                return true;
            }

        }
    }
我在这里使用这个代码: 请注意,如果在状态附近直接使用True或False,它将正常工作

public IEnumerable<EmployeeInfo> GetAllVisibleEmployeesInfo(string sortBy, string name, int startRowIndex, int maximumRows, string Department, bool onlyPresence = false)
    {
        name = Common.Converter.ConvertToFarsiYK(name ?? "").Trim();
        var GetNowString = Common.Date.GregorianToPersian(DateTime.Now.Date, Common.Date.DateStringType.Short);
        
        using (LinqDataContext context = DataContext)
        {
            if (Department == null)
            {
                Department = "";
            }

            List<EmployeeInfo> result = context.vwDailyWorks
                .Where(q => (q.Visible == true))
                .Where(q => (q.DepartmentName.Contains(Department)))
                .Where(q => (string.IsNullOrEmpty(name) ||
                                (q.FirstName.Contains(name) ||
                                q.LastName.Contains(name) ||
                                q.Position.Contains(name) ||
                                q.Floor.Contains(name) ||
                                (q.Ext_Tel ?? -1).ToString().Contains(name) ||
                                q.Email.Contains(name) ||
                                q.DepartmentName.Contains(name)))
                        )

                .GroupBy(t => t.EmployeeID)
                .Select(t => new EmployeeInfo
                {
                    FirstName = t.Max(s => s.FirstName),
                    LastName = t.Max(s => s.LastName),
                    Position = t.Max(s => s.Position),
                    DepartmentName = t.Max(s => s.DepartmentName),
                    Unit = t.Max(s => s.Unit),
                    Floor = t.Max(s => s.Floor),
                    Status =GetPresent_Status(t.Key),
                    Extension = t.Max(s => s.Ext_Tel),
                    Info = GetPresenceInfo(t.Key, false),
                    ID = t.Key,
                    Email = t.Max(s => s.Email),
                    StatusInfo = GetStatusInfo(t.Key, false)
                }
                        )
                .Where(w =>  w.Status == true)
                .OrderBy(sortBy)
                .Skip(startRowIndex)
                .Take(maximumRows)
                .ToList();
            return result;
        }
    }
public IEnumerable GetAllVisibleMemployeesInfo(字符串排序、字符串名称、int startRowIndex、int maximumRows、字符串部门、bool onlyPresence=false)
{
name=Common.Converter.ConvertToFarsiYK(名称??).Trim();
var GetNowString=Common.Date.GregorianToPersian(DateTime.Now.Date,Common.Date.DateStringType.Short);
使用(LinqDataContext=DataContext)
{
如果(部门==null)
{
部门=”;
}
列表结果=context.vwdailworks
.其中(q=>(q.Visible==true))
.其中(q=>(q.DepartmentName.Contains(Department)))
.Where(q=>(string.IsNullOrEmpty(name)||
(q.FirstName.Contains(名称)||
q、 LastName.Contains(名称)||
q、 位置.包含(名称)||
q、 楼层。包含(名称)||
(q.Ext_Tel???-1).ToString()包含(名称)||
q、 Email.Contains(名称)||
q、 部门名称。包含(名称)))
)
.GroupBy(t=>t.EmployeeID)
.选择(t=>new EmployeeInfo
{
FirstName=t.Max(s=>s.FirstName),
LastName=t.Max(s=>s.LastName),
位置=t.Max(s=>s.Position),
部门名称=t.Max(s=>s.DepartmentName),
单位=t.Max(s=>s.Unit),
地板=t.Max(s=>s.Floor),
状态=获取当前状态(t键),
分机=t.Max(s=>s.Ext_Tel),
Info=GetPresenceInfo(t.Key,false),
ID=t.键,
Email=t.Max(s=>s.Email),
StatusInfo=GetStatusInfo(t.Key,false)
}
)
.Where(w=>w.Status==true)
.OrderBy(sortBy)
.Skip(startRowIndex)
.Take(最大行数)
.ToList();
返回结果;
}
}

在GtoupBy之后调用
ToList()
。例如
.GroupBy(t=>t.EmployeeID).ToList()
这样你就可以在内存中调用你的方法
GetPresent\u Status
。这样做的缺点是,在进行筛选之前,您将收回所有数据。另一种方法是不在那里使用该方法,而在您通过这样做实现了datait工作之后再使用它
Status=Convert.ToBoolean(context.vwDailyWorks.Where(ss=>ss.EmployeeID==t.Key&&ss.Date==GetNowString.SingleOrDefault()),
但在GtoupBy之后出现了一些奇怪的错误scall
ToList()
。例如
.GroupBy(t=>t.EmployeeID).ToList()
这样你就可以在内存中调用你的方法
GetPresent\u Status
。这样做的缺点是,在进行筛选之前,您将收回所有数据。另一种方法是不在那里使用该方法,而在您通过这样做实现了datait工作之后再使用它
Status=Convert.ToBoolean(context.vwDailyWorks.Where(ss=>ss.EmployeeID==t.Key&&ss.Date==GetNowString.SingleOrDefault()),
但是出现了一些其他奇怪的错误