entity-framework - 如何为没有相同表名 ID 的列创建导航属性
问题描述
users
我正在尝试在 table和之间建立一对多的关系orders
,但问题是Users
table 没有可以链接到 table 的外键,Orders
我指的列是orderNumber
该应用程序已投入生产一段时间,因此尝试添加或更改列不是一种选择。
目标是使用已经存在的东西,并通过遵循导航属性方法使这个异步函数工作。
public async Task<List<Order>> GetCustomerOrders()
{
using (var context = new Users())
{
var user = context.Users.FirstOrDefault(c => c.orderNumber == 7005);
return user.Orders.ToList();
/* Error
An unhandled exception occurred while processing the request.
ArgumentNullException: Value cannot be null.
Parameter name: source
*/
}
}
模型类如下所示:
public partial class User
{
public int Id { get; set; }
public string Name { get; set; }
public int orderNumber { get; set; }
/* Create relationship with orderNumber foreign key */
[ForeignKey("orderNumber")]
public virtual ICollection<Order> Orders { get; set; }
}
public partial class Order
{
public int Id { get; set; }
public int orderNumber { get; set; }
/* Create relationship */
public virtual User User { set; get; }
}
解决方案
推荐阅读
- c# - Xamarin/Tizen:执行 Navigation.PopAsync() 使应用程序崩溃
- macos - 无法运行 Appium
- laravel - 函数 App\Http\Controllers\SupervisorController::edit() 的参数太少,通过了 0,预期正好 1
- terraform - 将 terraform 输出从一个文件传递到另一个文件
- python - Python SMTP Gmail 限制
- json - NIFI - 使用一个 ReplaceText 处理器如何在每行的开头和结尾添加括号
- mongodb - mongodb 中的 db.collections.insert() 中的无序插入如何表现
- r - R - 如何转换频率的分类变量
- python - 使用正则表达式删除确切字符串之前的所有内容
- nginx - hls 流在 nginx-rtmp-module 中不起作用