Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 可以使用数据库上下文设置模型的属性,但尝试获取时返回null_C#_Asp.net Core_Entity Framework Core - Fatal编程技术网

C# 可以使用数据库上下文设置模型的属性,但尝试获取时返回null

C# 可以使用数据库上下文设置模型的属性,但尝试获取时返回null,c#,asp.net-core,entity-framework-core,C#,Asp.net Core,Entity Framework Core,我有这些模型 public class Order { public string Id { get; set; } public List<ItemsOrdered> Items { get; set; } } public class ItemsOrdered { public string Id { get; set; } public Item Item { get; set; } public int Quantity { get;

我有这些模型

public class Order
{
    public string Id { get; set; }
    public List<ItemsOrdered> Items { get; set; }
}

public class ItemsOrdered
{
    public string Id { get; set; }
    public Item Item { get; set; }
    public int Quantity { get; set; }
}
public class Item 
{
    // some props
}
它返回订单,但是如果我想通过

order.Items
它返回null,我得到异常:

对象引用未设置为对象的实例


引发异常的原因有很多,但捕获异常将为您提供更多有关发生情况的详细信息。例如,您可能正在提取订单,但该订单可能没有与之关联的任何项目:

Order order = new Order();
List<ItemsOrdered> orderItems = new List<ItemsOrdered>();
try {
    order = context.orders.First(c => c.Id = id);
    orderItems = order.Items;
} catch (Exception e){
    Debug.WriteLine(e.Message);
    //Do what you will here...
}
订单=新订单();
List orderItems=新列表();
试一试{
order=context.orders.First(c=>c.Id=Id);
orderItems=order.Items;
}捕获(例外e){
Debug.WriteLine(e.Message);
//在这里做你想做的。。。
}

如果没有订单,那么您将有一个空列表,因此当您尝试引用它时,将抛出错误。

使用类似以下内容:

 order = context.orders.Include(o=> o.Items).First(c => c.Id = id);

这回答了你的问题吗?您是否启用了延迟加载或使用了include?您应该添加您使用的db技术(例如实体框架),因为tagi确实获得了订单,但问题在于特定的对象属性。带有延迟加载的注释可能会对我有所帮助
 order = context.orders.Include(o=> o.Items).First(c => c.Id = id);