gpt4 book ai didi

c# - 不同类中的相同变量名,但一个可以为空

转载 作者:行者123 更新时间:2023-11-30 15:20:42 25 4
gpt4 key购买 nike

我有以下具有相同变量的类,但其中一个可以为空,另一个不能为空,因为它是该表中的主键:

[DataServiceKey("OrderID")]
public class Order
{
public int OrderID { get; set; }
public int? EmployeeID { get; set; }
// ...other properties...
// ...

public Employee Employees { get; set; }
}
[DataServiceKey("EmployeeID")]
public class Employee
{
public int EmployeeID { get; set; }
// ...other properties...
// ...

public IEnumerable<Order> Orders { get; set; }
}

这两个类之间的一般思想是一个订单可以属于 1 个员工,但也可能存在一个尚未分配给任何员工的订单,一个员工必须至少有 1 个订单或超过 1 个。现在我我正在尝试在 Order 类和 Employee 类之间创建关联,我就是这样做的:

        // Create an association between Orders and Employees
var _es = _Employees.ToDictionary(e => e.EmployeeID);
var _os = _Orders.ToLookup(o => o.EmployeeID);
foreach (var o in _Orders) o.Employees = _es[o.EmployeeID];
foreach (var e in _Employees) e.Orders = _os[e.EmployeeID];

我得到了 cannot convert from "int?"_es[o.EmployeeID] 中的“int” 错误,我已经尝试了 here 中提供的所有解决方案,但它们都不适合我……我也尝试过使用 _es[o.EmployeeID.Value],它确实解决了错误,但这次它给了我 System.运行时出现 InvalidOperationException 错误。是否有任何可能的解决方案适用于我的问题?

最佳答案

您传递的是 int?用于字典的键,其中 int是需要的。

o.Employee是一个 int? .

esDictionary<int, Employee> .

你可能想要:

o.Employees = o.EmployeeID != null ? _es[o.EmployeeID] : null;

关于c# - 不同类中的相同变量名,但一个可以为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39404091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com