C# 我得到了在C中使用bool方法的错误消息#
我想得到一个bool来显示这个人是否在公司,并且代码如下,但是我得到了这个错误:methodsystem.String GetPresent_Status(Int32)不支持到SQL的转换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.
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之后出现了一些奇怪的错误scallToList()
。例如.GroupBy(t=>t.EmployeeID).ToList()
这样你就可以在内存中调用你的方法GetPresent\u Status
。这样做的缺点是,在进行筛选之前,您将收回所有数据。另一种方法是不在那里使用该方法,而在您通过这样做实现了datait工作之后再使用它Status=Convert.ToBoolean(context.vwDailyWorks.Where(ss=>ss.EmployeeID==t.Key&&ss.Date==GetNowString.SingleOrDefault()),
但是出现了一些其他奇怪的错误