我正在使用Code First的Entity Framework 6,我有一个具有以下结构的表:
public class Item
{
[Key]
public int ItemId { get; set; }
[Required]
[MaxLength(255)]
public string Name { get; set; }}
public Item Parent { get; set; }
public virtual List<Item> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以进行单个查询/数据库访问,Items直到我的树,直到根,提供itemIdas参数.
例如,给我ItemId55岁以上的所有父母,直到找不到父母.
我有一个Car具有3个可搜索属性的实体:
Brand Model Code
----------- ---------------- -----------
Ferrari F40 X7844ADFS
Porsche 911 Turbo YSAD42313
Run Code Online (Sandbox Code Playgroud)
我有以下方法:
public IEnumerable<Car> SearchCar(string search)
{
IEnumerable<Car> result = Enumerable.Empty<Car>().AsEnumerable();
if (!string.IsNullOrEmpty(search))
{
var preResult = from A in _context.Cars
select new { TextField = A.Brand + " " + A.Model + A.Code,
car = A};
result = preResult.Where(x => x.TextField.ToLower().Contains(searchValue.ToLower())).Select(v => v.Car);
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
搜索示例:
但是,这种方法不适用于第一种方法(保时捷Turbo).反正有没有这样做,所以它适用于所有情况?