我的CarFormat对象具有Name和Id属性。我正在获取ClientId等于我传递给内部方法的所有carformats。我这样做
Name
这会返回一个CarFormat对象列表。
此对象具有属性Id
和myViewModel.CarFormats = new SelectList(carFormats, "Id", "Name");
。在我的viewmodel中添加SelectListItem CarFormats作为属性后,我尝试将这个可枚举的资源列表绑定到选择列表
myViewModel.CarFormats = new SelectList(carFormats.First(), "Id", "Name");
但是我得到了数据绑定异常DataBinding:`
'System.Collections.ObjectModel.ReadOnlyCollection1 [[xxxxx,xxxxxx, Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]'没有 包含名称为“Name”的属性。
当我投影只使用列表中的第一项时,一切正常,除了我需要为所有对象而不仅仅是第一项
<?php
// 1. Create a database connection
$mysqli = new mysqli("localhost", "root", "", "us");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
$term = strip_tags(substr($_POST['searchit'],0, 100));
$term = $mysqli->real_escape_string($term);
if($term=="") {
echo "Enter Something to search";
exit();
}
if(
$result = $mysqli->query("Select * from table1 where word like '{$term}%'
UNION
Select * from table2 where word like '{$term}%'")){
$num_rows = $result->num_rows;
if(mysqli_num_rows($result) >= 0) {
while($row = $result->fetch_assoc())
{
echo "Stem : {$row['word']} <br>";
}
}
else {
$result = $mysqli->query("Select * from table3 where words like '{$term}%'");
$num_rows = $result->num_rows;
if(mysqli_num_rows($result) >= 0) {
while($row = $result->fetch_assoc())
{
echo "words: {$row['words']} <br>";
}
}
}
}
else{
echo "No matches found!";
}
?>
答案 0 :(得分:2)
将您的查询更改为
var carFormats = this.carRepository.All()
.Where(x => x.CarFormat.Any(c => c.Car.Id == someVar.CarId))
.SelectMany(x=>x.CarFormat).AsEnumerable();
使用 SelectMany
一些资源
答案 1 :(得分:0)
您班级中的属性是一个选择列表项:
SelectListItem CarFormats
这就是当你在集合上调用.First()时它的工作原理。
您正尝试使用多个项目的值进行设置:
myViewModel.CarFormats = new SelectList(carFormats, "Id", "Name");
将视图模型类中的属性设置为选择列表:
public SelectList CarFormats { get; set; }
答案 2 :(得分:0)
我认为你错过了.ToList()
myViewModel.CarFormats = new SelectList(carFormats.ToList(),“Id”,“Name”);