【问题标题】:How to cast a dynamic object to a type and compare如何将动态对象转换为类型并进行比较
【发布时间】:2019-03-06 11:01:58
【问题描述】:

我有一个名为 products 的模型,

public class Product
{                 
    public string Name { get; set; }

    public string Sku { get; set; }

    public float Cost { get; set; }

    public string Description { get; set; }        
}

我将从外部源获取动态类型的对象列表,如下所示

string query = "SELECT Id,Name,KNDYCPQ__Description__c,KNDYCPQ__ProductCode__c FROM KNDY4__Product__c";
List<dynamic> products = new List<dynamic>();
products = await SalesforceSyncProvider.QueryAsync(query);
foreach (var x in products)
{
    Product product = new Product();
    if (db.Products.Where(a => a.Sku ==x.KNDYCPQ__ProductCode__c).FirstOrDefault() != null) {

    product.Name = x.Name;
    product.Sku = x.KNDYCPQ__ProductCode__c;
    product.Description = x.KNDYCPQ__Description__c;
    product.Cost = 2000;
    db.Products.Add(product);
    }
}

所以,在添加到我的数据库之前,我想用我的 Sku 检查产品代码 (KNDYCPQ__ProductCode__c) 以避免重复,但 if 条件失败并显示错误,表达式树可能不包含动态操作。

【问题讨论】:

  • x.KNDYCPQ__ProductCode__c 放入一个强类型变量并在表达式中使用它..
  • 异常消息是我们的朋友,它们包含几乎所有我们问题的答案。太糟糕了,没有人真正阅读它们:(

标签: c# linq dynamic salesforce


【解决方案1】:

x.KNDYCPQ__ProductCode__c 放入强类型变量并在表达式中使用它。

string sku = x.KNDYCPQ__ProductCode__c;

if (db.Products.Where(a => a.Sku == sku).FirstOrDefault() != null) {

//...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多