我是新来的asp.net,C#和SQL,可以使用一些指导..我使用:下面:数据库与linq实体框架。我需要将特定的“乘车”与特定的“车辆”相关联,但我不确定如何继续。我已经在两个物体之间设置了导航属性,但是现在需要让车辆持有对其所乘坐的列表的引用。我需要一个单独的车辆列来保存这个列表吗?有人可以告诉我完成这个的语法吗?LINQ to Entities外键协会
这里是我目前拥有的代码,并在两个点意见,我需要帮助:
private void setNewRide(Ride newRide, int carNum)
{
using (myEntities = new RamRideOpsEntities())
{
var assignedCar = (from car in myEntities.Vehicles
where (car.CarNum == carNum)
select car).FirstOrDefault();
if (assignedCar != null && newRide != null)
{
Ride lastRide = assignedCar.Rides.LastOrDefault(); //HERE IS WHERE I NEED TO LOAD THE MOST RECENT 'RIDE' FOR THIS CAR, IS THIS CORRECT???
if (lastRide != null)
{
lastRide.Status = "Completed";
assignedCar.numRides = assignedCar.numRides + 1;
lastRide.TimeDroppedOff = DateTime.Now;
TimeSpan duration = (lastRide.TimeDroppedOff - lastRide.TimeDispatched).Value;
lastRide.ServiceTime = duration;
if (assignedCar.AvgRideTime == null)
{
assignedCar.AvgRideTime = duration;
}
else
{
assignedCar.AvgRideTime = TimeSpan.FromSeconds((((TimeSpan)assignedCar.AvgRideTime).Seconds + duration.Seconds)/assignedCar.numRides);
}
}
assignedCar.Status = "EnRoute";
assignedCar.CurrPassengers = newRide.NumPatrons;
assignedCar.StartAdd = newRide.PickupAddress;
assignedCar.EndAdd = newRide.DropoffAddress;
//HERE IS WHERE I NEED TO ADD THE 'newRide' OBJECT TO THE LIST OF RIDES IN THE 'assignedCar' ..SYNTAX???
newRide.TimeDispatched = DateTime.Now;
newRide.AssignedCar = carNum;
newRide.Status = "EnRoute";
myEntities.SaveChanges();
SelectCarUP.DataBind();
SelectCarUP.Update();
}
}
}
除非EF做事情聪明我没有意识到,你所说的问题依赖于SQL Server中不存在的神秘的自然排序(至少以最相信的形式)。这些Rides的顺序是基于页面Sql服务器插入记录的,如果您知道页面上剩余的空间并插入行的确切大小,则该记录只有确定性。这不太可能,所以使用'OrderBy'子句。回到原来的问题,您评论的代码行有什么问题?例外?没有返回? – Smudge202