我正在进行此Linq To SQL
查询,该查询从database
获取客户类别.CustCategory将已定义。这是查询。
public IList<string> GetAccountType()
{
using (var db = new DataClasses1DataContext())
{
var acctype = db.mem_types.Select(account=>account.CustCategory).Distinct().ToList();
if (acctype != null)
{
return acctype;
}
}
}
目前我收到错误Not all code paths return a value.
如果我总是确定数据库中有值,那么我是否需要检查null
,如果我需要检查{{1}那么我该如何处理呢。
谁能帮我这个。
欢迎任何建议。
答案 0 :(得分:8)
由于Enumerable.ToList
永远不会返回null
(请参阅the documentation的返回值部分),因此您可以安全地删除if
。
编辑:请注意,无论您的数据库包含什么,acctype
永远不会为空:
null
不同)。null
。答案 1 :(得分:4)
这与LINQ to SQL无关,方法GetAccountType()
必须返回IList<string>
。您应该返回return acctype;
,然后使用Any()
稍后检查此返回的列表,例如:
if(GetAccountType.Any()){
//not empty
}
答案 2 :(得分:4)
对于一个相当干净和可读的解决方案,这样的事情怎么样?:
(注意,更新:删除了检查null,因为它显然没有任何效果。)
public IList<string> GetAccountType()
{
var acctype = new List<string>();
using (var db = new DataClasses1DataContext())
{
acctype = db.mem_types.Select(
account=>account.CustCategory).Distinct().ToList();
}
return acctype;
}
答案 3 :(得分:3)
如果出现以下情况:
if (acctype != null)
是空的吗?您的方法应该是return
?
你需要返回一些东西
答案 4 :(得分:1)
您需要从函数中返回一个值:
public IList<string> GetAccountType()
{
using (var db = new DataClasses1DataContext())
{
var acctype = db.mem_types.Select(account=>account.CustCategory).Distinct().ToList();
if (acctype != null)
{
return acctype;
}
}
return acctype;
}