C# 如何获取';自行车';基于';车站';身份证件

C# 如何获取';自行车';基于';车站';身份证件,c#,asp.net,C#,Asp.net,在我的站点模型中,我声明了一个列表bikes{get;set;},以便每个站点都有自己的一套自行车。在我的Bikes数据库表中这样声明,我就有了StationId。基于stationid,我找不到任何方法只能从一个站点获取自行车 有人知道怎么做吗 这是我的电台型号: public class Station { public int Id { get; set; } [Required] [StringLength(60, MinimumLength = 3)]

在我的
站点
模型中,我声明了一个
列表bikes{get;set;}
,以便每个站点都有自己的一套自行车。在我的
Bikes
数据库表中这样声明,我就有了
StationId
。基于stationid,我找不到任何方法只能从一个站点获取自行车

有人知道怎么做吗

这是我的
电台
型号:

public class Station
{
    public int Id { get; set; }
    [Required]
    [StringLength(60, MinimumLength = 3)]
    [Display(Name = "Denumire")]
    public string Name { get; set; }
    [Required]
    [Display(Name = "Longitudine")]
    public double Longitudine { get; set; }
    [Required]
    [Display(Name = "Latitudine")]
    public double Latitudine { get; set;}
    [Required]
    [Display(Name = "Cate biciclete sunt in statie")]
    public int NrOfBikes { get; set; }
    [Required]
    [Display(Name = "Cate biciclete sunt disponibile in statie")]
    public int NrOfAvailableBikes { get; set; }
    public List<Bike> Bikes { get; set; }
    [Required]
    [Display(Name = "Este inchisa?")]
    public bool isClosed { get; set; }        
}
公共类电台
{
公共int Id{get;set;}
[必需]
[StringLength(60,最小长度=3)]
[显示(Name=“Denumire”)]
公共字符串名称{get;set;}
[必需]
[显示(Name=“Longitudine”)]
公共双纵向{get;set;}
[必需]
[显示(Name=“Latitudine”)]
公共双纬度{get;set;}
[必需]
[显示(Name=“Cate bicilete sunt in statie”)]
公共整数NrOfBikes{get;set;}
[必需]
[显示(Name=“Cate BICILETE sunt disponibile in STATE”)]
公共int NrOfAvailableBikes{get;set;}
公共列表{get;set;}
[必需]
[显示(Name=“Este inchisa?”)]
公共布尔是封闭的{get;set;}
}
这是我的自行车模型:

public class Bike
{
    public int Id { get; set; }
    public bool isAvailable { get; set; }
    public List<Booking> Bookings { get; set; }
}
公共级自行车
{
公共int Id{get;set;}
公共布尔值可用{get;set;}
公共列表预订{get;set;}
}
到目前为止,我所尝试的: 站点id作为方法中的一个参数出现:

List<Bike> bikes = new List<Bike>();
var stations = _context.Stations.Where(x=>x.Id == id);

bikes = _context.Stations.Where(x => x.Bikes. "????" == stations.Id);
List bikes=newlist();
var stations=_context.stations.Where(x=>x.Id==Id);
bikes=_context.Stations.Where(x=>x.bikes.“??”==Stations.Id);
以下是我的
表的外观:

下面是我的
自行车
表的外观:

我很难用有用的东西替换“?”,以便只从当前站点获取自行车


注意:我使用的是SQL Server LocalDB,选项卡是用EF创建的。

当您想要查询给定站点的所有自行车时,您不需要查询stations表

如果外键和导航对象设置正确,您可以:

var station = context.Stations.Include(s => s.Bikes).FirstOrDefault(s => s.Id == stationId);
// TODO: null check on station
var bikes = station.Bikes;
如果没有Bikes导航属性,请直接查询Bikes表:

var bikes = context.Bikes.Where(b => b.StationId == stationId).ToList();

其中
返回一个
IEnumerable
,因此对于这行代码:-

var stations = _context.Stations.Where(x => x.Id == id);
您将获得一个
站点的
IEnumerable
,但我假设您只需要一个
站点
,其中
站点ID
匹配。为此,您可以:-

var station = _context.Stations.FirstOrDefault(x => x.Id == id);
一旦你有了
站点
,你就可以通过
station.Bikes
获得该
站点的
自行车
列表


在对其执行任何操作之前,还要确保检查
station
上的
null
,因为如果找不到匹配的元素,
FirstOrDefault
将返回null

您使用的数据库工具是什么?i、 你是如何从数据库到模型的?例如,您是否使用EF?还是原始ADO.NET?还是整洁?还是数据适配器?或者其他200个选项中的任何一个?这是非常重要的(比asp.net更重要);另外:“因为我所尝试的并没有得到预期的结果。”-在这里展示你所尝试的可能很有用,因此我们可以推断上下文。请共享数据库表和模型以更好地理解。好的,明白了,现在更新问题欢迎使用堆栈溢出!请避免使用第三方服务显示图像。如果需要添加图像,请在编辑时单击图像按钮将其添加到文章中,或者复制图像并单击CTRL+V,或者以任何其他方式将其直接粘贴到文章中。第三方图像服务,或者留下一个死链接,或者URL可用于恶意目的。是的,第一段代码按预期工作。正如你提到的,我试着直接查询Bikes表,至少10次,但它不想工作。非常感谢,非常感谢,非常有帮助。谢谢你!