我正在尝试创建一个下拉列表,它将责任和级别合并到列表中的一行中。但是,我希望他们保存到SQl数据库中自己的列中,因此我使用了表Responsibility_Key中的identity列。
这是我的代码:
public ActionResult Delegate(string Responsibility, string Responsibility_Key, string ADUserName, string Level, string submit)
{
var Dgates = cc_Db.Dim_Responsibility
.Select(s => new SelectListItem
{
Value = s.Responsibility_Key.ToString(),
Text = s.Responsibility + " - " + s.Level
});
ViewBag.Responsibility = new SelectList(Dgates, "Value", "Text");
return View();
}我尝试过多种不同的方法来转换为字符串,以及使用.AsNumerable和IENumerable,但没有成功。
我一直收到的错误是:"LINQ实体不识别'System.String ToString()‘方法,该方法无法转换为存储表达式。“
任何帮助都是非常感谢的。
发布于 2015-04-27 15:11:05
我的猜测(正如您在编辑中所确认的那样)是您正在使用某种ORM (例如)。实体框架,并且它不能将ToString()转换为SQL
首先获取一个匿名i枚举,然后是收费表,例如。
var Dgates = cc_Db.Dim_Responsibility.Select(new{
Value = s.Responsibility_Key,
Text = s.Responsibility + " - " + s.Level
}).ToList().Select(a => new SelectListItem
{
Value = a.Value.ToString(),
Text = a.Text
}).ToList();发布于 2015-04-27 15:04:46
尝试调用ToList
var Dgates = cc_Db.Dim_Responsibility
.Select(s => new SelectListItem
{
Value = s.Responsibility_Key.ToString(),
Text = s.Responsibility + " - " + s.Level
}).ToList();这将使Dgates成为满足new SelectList(Dgates, "Value", "Text");的List<SelectListItem>。
https://stackoverflow.com/questions/29899288
复制相似问题