c# - 如何在 NET Core 中使用 LINQ 检查用户是否已提供乘车服务
问题描述
public class User
{
[Key]
public Guid Id { get; set; }
[Required(ErrorMessage = "Name is required")]
[MaxLength(250, ErrorMessage = "Username exceed 15 characters")]
public string UserName { get; set; }
public ICollection<Vehicle> Vehicles { get; set; }
}
public class Vehicle
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
public string Name { get; set; }
public string Brand { get; set; }
public string PlateNumber { get; set; }
public Guid UserId { get; set; }
public User User { get; set; }
public ICollection<Ride> Rides { get; set; }
}
public class Ride
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public DateTime RideStartTime { get; set; }
//Relationship
//Ride has One Vehicle
public int VehicleId { get; set; }
public Vehicle Vehicle { get; set; }
//Ride has One Vehicle
public int EventId { get; set; }
public Event Event { get; set; }
}
// In RideRepository
public bool IsRideExists(int vehicleId, int eventId )
{
return RepositoryContext.Rides.Any(ride => ride.VehicleId.Equals(vehicleId) && ride.EventId.Equals(eventId));
}
One to many My relationship in ef core One user can have many vehicle One vehicle has one user One to many One ride can have one vehicle one vehicle can have many ride Many to many one ride can have one event one event can have one ride
用户每次活动只能提供一辆车。1 个用户的 1 个事件。我的问题是当我提供乘坐另一辆车时,优惠乘坐已成功进入数据库,我想使用 LINQ 命令检查一辆车是否已经提供乘坐,用户不能为同一事件提供使用其他车辆的乘坐
解决方案
将您的存在更改为此行中的某些内容,添加userId
您的参数
RepositoryContext.Rides.Any(ride => (ride.VehicleId.Equals(vehicleId) && ride.EventId.Equals(eventId)) || (ride.Vehicle.UserId == userId && ride.EventId.Equals(eventId)));
这|| (ride.Vehicle.UserId == userId && ride.EventId.Equals(eventId))
将检查用户和此事件是否已经存在
推荐阅读
- javascript - 我需要关于 facebook 插件的帮助 - reactjs 前端
- docker - 如何使 docker 容器完全不可读
- javascript - 调用外部组件初始化的调度函数
- tensorflow - 如何将 Faster R-CNN Resnet101 的冻结推理图/保存模型转换为 tflite?
- c# - 尝试将 DataGridView 行值加载到组合框时出现“超出范围异常”错误
- html - Google 不会处理内容属性值类型为 ' 的伪元素
' 作为替换元素渲染 - python - 如果值是元组并且您只有一个元组中的值,是否可以反向查找/反转字典?
- visual-studio-code - 转到外部终端中的当前路径,例如 VS Code 中的 iTerm
- c# - C# Entity Framework 在同一个数据库中创建两个 DbContext´s
- java - Clob 和字符串的问题