LINQ to Entities无法识别MVC中的方法错误
本文关键字:方法 错误 MVC 识别 to Entities LINQ | 更新日期: 2023-09-27 18:26:14
我收到这个错误
LINQ to Entities无法识别方法"System.String"Format(System.String、System.Object、System.Object)"方法,并且此方法无法转换为存储表达式。
我想做的是在数据库中列出我的所有值。
这是我认为的代码:
<div class="col-md-10">
@Html.DropDownList("SelectedScheduleId", Model.ScheduleSelectListItems, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.sched_id, "", new { @class = "text-danger" })
</div>
这是我模型中的课堂:
public class BookingModel
{
[Required]
[StringLength(200, ErrorMessage = "Description too short. Must be at least {2} characters long", MinimumLength = 10)]
[Display(Name = "Describe your Consultation")]
public string appointment_description { get; set; }
public int appointment_id { get; set; }
public int student_id { get; set; }
public int sched_id { get; set; }
public sched sched { get; set; }
public IEnumerable<SelectListItem> ScheduleSelectListItems { get; set; }
public int SelectedScheduleId { get; set; }
}
和我的控制器:
public ActionResult Book()
{
var items = db.scheds.Select(sched => new SelectListItem { Text = string.Format("{0} - {1}", sched.sched_stime, sched.sched_etime), Value = sched.sched_id.ToString() });
var model = new BookingModel { ScheduleSelectListItems = items };
return View(model);
}
我只想把时间表的值放在下拉列表中。
我咨询过别人关于如何列出外键值的问题,现在我遇到了一个新的错误。我该怎么解决这个问题?这是我完成项目的唯一障碍(
我想在使用LinqToSQL时,您显然不能使用string.Format
。
您有两个选项:
var items = db.scheds
.ToList()
.Select(sched => new SelectListItem
{
Text = string.Format("{0} - {1}", sched.sched_stime, sched.sched_etime),
Value = sched.sched_id.ToString()
});
使用.ToList()
将表从数据库填充到服务器。然后,当您调用string.Format
时,您将使用LinQToObjects。
或者连接不带string.Format
:的字符串
Text = sched.sched_stime + " - " + sched.sched_etime,
然后LinQToSQL能够翻译它。