【发布时间】:2016-06-30 15:04:39
【问题描述】:
这个问题是这个问题的延续,How to bind a variable with multiple types? LINQ
我正在尝试选择一行包含 30 列的数据,条件是列 Staff_No 中的唯一值。该行有多种数据类型。
我无法获得正确的语法,这是代码。
internal class DatabaseQueries
{
public static IEnumerable<int> ModValues(DatabaseDataContext database, int staffNo)
{
return database.Staff_Mod_TBLs
.Where(staff => staff.Staff_No == staffNo).Cast<int>().ToList();
}
}
错误是InvalidOperationException Class。
这段代码给了我这个错误,
public static IEnumerable<decimal> ModValues(DatabaseDataContext database, int staffNo)
{
return database.Staff_Mod_TBLs
.Where(staff => staff.Staff_No == staffNo).Select(staff => staff.Days_No_D).ToList();
}
错误,Severity Code Description Project File Line Suppression State Error CS0266 Cannot implicitly convert type 'System.Collections.Generic.List<decimal?>' to 'System.Collections.Generic.IEnumerable<decimal>'. An explicit conversion exists (are you missing a cast?)
【问题讨论】:
-
你为什么要申请
int?如果您只想从数据库中获取记录,为什么该方法返回一个集合?你只是在找.Single(staff => staff.Staff_No == staffNo)吗? -
您想要整行还是只想要
int列?你的返回类型不应该是IEnumerable<Staff_Mod>什么的吗?如果您只想 one 行将resutn类型设置为类并使用Single或SingleOrDefault -
我试图获取具有多种数据类型的整行。
-
那你为什么要将对象转换成整数?