【问题标题】:List of objects in RavenDBRavenDB 中的对象列表
【发布时间】:2014-04-12 12:43:21
【问题描述】:

我正在尝试在 MVC 项目中学习 RavenDB...假设我们有很多文档存储在 RavenDB 集合中,看起来像这样:

"ShipVia": "shippers/2",
  "Freight": 18.66,
  "Lines": [
    {
      "Product": "products/25",
      "ProductName": "NuNuCa Nuß-Nougat-Creme",

    },

通过执行以下操作,我设法显示了一个单一属性(例如“Freight”): 类:

public class Orders
    {
       public string Freight { get; set; } 
    }

然后使用 List-template 创建一个硬类型视图...这为我提供了数据库中的所有 Freights-property...

我想获得“Lines”属性并能够看到产品和产品名称...试过这个:

namespace World.DAL
{
    public class Orders
    {
        public string Company { get; set; }
        public string Employee { get; set; }
        public List<Lines> Lines { get; set; }

    }

    public class Lines
    {
       public string Product { get; set; }
       public string ProductName { get; set; }

    }
}

那不起作用..我认为只是返回了一个空列表..有人可以指出我正确的方向吗?

编辑:

 {
      "Company": "companies/65",
      "Employee": "employees/5",
      "OrderedAt": "1997-12-02T00:00:00.0000000",
      "RequireAt": "1997-12-30T00:00:00.0000000",
      "ShippedAt": "1997-12-08T00:00:00.0000000",
      "ShipTo": {
        "Line1": "2817 Milton Dr.",
        "Line2": null,
        "City": "Albuquerque",
        "Region": "NM",
        "PostalCode": "87110",
        "Country": "USA"
      },
      "ShipVia": "shippers/2",
      "Freight": 18.66,
      "Lines": [
        {
          "Product": "products/25",
          "ProductName": "NuNuCa Nuß-Nougat-Creme",
          "PricePerUnit": 14.0,
          "Quantity": 35,
          "Discount": 0.25
        },
        {
          "Product": "products/75",
          "ProductName": "Rhönbräu Klosterbier",
          "PricePerUnit": 7.75,
          "Quantity": 18,
          "Discount": 0.0
        }
      ]
    }

【问题讨论】:

    标签: c# asp.net-mvc ravendb


    【解决方案1】:

    您的类需要完全匹配 json 格式,这意味着您的类需要如下所示:

    public class Orders
    {
        public string ShipVia { get; set; }
        public string Freight { get; set; }
        public List<Lines> Lines { get; set; }
    
    }
    

    当然你的行类仍然需要声明

    public class Lines
    {
       public string Product { get; set; }
       public string ProductName { get; set; }
    }
    

    【讨论】:

    • 感谢您的回答,但如果我的班级看起来像那样,我会收到 的错误,因为它不存在...
    • 你的意思是线条不存在?您在上一篇文章中表明您声明了一个名为 Lines 的类
    • 对不起,我决定缩短 json-object 以提高可读性...请查看我更新的问题,它现在包含整个对象..
    • 好的,当我使用此类并以列表形式创建强类型视图时,它会生成以下内容:@model IEnumerable 但是 LIST 类没有表...我我还缺少其他东西?
    • 你的意思是你的 List 还是空的?
    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多