【问题标题】:object does not contain a definition for "Properties"对象不包含“属性”的定义
【发布时间】:2016-05-23 02:12:57
【问题描述】:

我收到一个错误

类型异常 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' 发生在 System.Core.dll 但未在用户代码中处理 附加 信息:“object”不包含“CategoryId”的定义

下面是我的代码

dynamic product = (from prod in EntityInitializer.inventoryContext.Products
                           join sCat in EntityInitializer.inventoryContext.SubCategories on prod.SubCatID equals sCat.SubCategoryId
                           join vat in EntityInitializer.inventoryContext.VATs on prod.VatID equals vat.VatId
                           where prod.ProdID == proid && !prod.IsDelete
                           select new
                           {
                               ProductId = prod.ProdID,
                               CategoryId = sCat.CategoryId,
                               SubCategoryID = prod.SubCatID,                               
                               ProdName = prod.ProdName,
                               Make = prod.Make,
                               Finish = prod.ProdFinish,
                               Price = prod.Price,
                               Vatid=prod.VatID,
                               VatValue=vat.VatValue,
                               Unit = prod.ProdUnit,
                               Width = prod.ProdWidth,
                               Depth = prod.ProdDepth,
                               Height = prod.ProdHeight,
                               Inch = prod.ProdInch,
                               ImageURL = prod.ProdImage
                           }).FirstOrDefault();

我想从 product 中检索 CategoryId 并且产品包含所有记录,您可以在下面的附图中轻松找到这些记录。

http://i.stack.imgur.com/6athN.png

错误图片 http://i.stack.imgur.com/ra0rL.png

【问题讨论】:

  • 您确定要输入prod.CategoryId 吗?否则你将不得不解释“sCat”应该是什么意思。
  • @HansPassant 请参考,以便理解。
  • @HansPassant "sCat " 是 "SubCategory" 的别名
  • 因此,当您单步执行项目时,您会看到 product.CategoryId 的值为 10,如图所示,但是当您点击使用 product.CategoryId 的代码行时,您会遇到异常吗?您还应该在问题中包含引发异常的代码。
  • @Clint 请参考此链接i.stack.imgur.com/ra0rL.png

标签: c#


【解决方案1】:

尝试像这样访问您的财产

product.GetType().GetProperty("CategoryId").GetValue(product, null);

【讨论】:

  • 非常感谢您节省了我的时间。
猜你喜欢
  • 1970-01-01
  • 2013-10-29
  • 2020-08-13
  • 1970-01-01
  • 2013-08-27
  • 2011-06-19
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
相关资源
最近更新 更多