我最近发现了使用存储库的好处,我对它很新,我的问题是我现在如何返回代码?例如,在我使用存储库之前在我的常规控制器中,我返回像这样的代码
public ActionResult Index(int? zips, double? rad)
{
if (!zips.HasValue)
{
string connectme = ConfigurationManager.ConnectionStrings["looglercontext"].ConnectionString;
using (System.Data.SqlClient.SqlConnection sqlConnection = new System.Data.SqlClient.SqlConnection(connectme))
{
sqlConnection.Open();
var articles = sqlConnection.Query<Article>("Select top 20 * from articles").ToList();
return View(new homepage { article = articles });
}
}
return View();
}
现在我把这些代码放在一个存储库中,因为他们不接受ViewModels返回我基本上丢失了这就是我所拥有的
public homepage FirstRepository(int? zips, double? rad)
{
if (!zips.HasValue)
{
string connectme = ConfigurationManager.ConnectionStrings["looglercontext"].ConnectionString;
using (System.Data.SqlClient.SqlConnection sqlConnection = new System.Data.SqlClient.SqlConnection(connectme))
{
sqlConnection.Open();
var articles = sqlConnection.Query<Article>("Select top 20 * from articles").ToList();
return new homepage { article = articles};
}
}
//如果存储库为null,我怎么能在这里返回一些东西 }
我收到错误并非所有代码路径都返回值
答案 0 :(得分:0)
为了编译此代码,如果不满足if
条件,则可以返回空列表:
public IList<Article> FirstRepository(int? zips, double? rad)
{
if (!zips.HasValue)
{
string connectme = ConfigurationManager.ConnectionStrings["looglercontext"].ConnectionString;
using (System.Data.SqlClient.SqlConnection sqlConnection = new System.Data.SqlClient.SqlConnection(connectme))
{
sqlConnection.Open();
var articles = sqlConnection.Query<Article>("Select top 20 * from articles").ToList();
return articles;
}
}
return new List<Article>();
}
然后在你的控制器中:
public ActionResult Index(int? zips, double? rad)
{
var articles = someRepo.FindRepository(zips, rad);
return View(new homepage { articles = articles });
}