c# - 如何将动态对象转换为类型并进行比较

标签 c# linq dynamic salesforce

我有一个名为产品的模型,

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 放入强类型变量中,并在表达式中使用它。

string sku = x.KNDYCPQ__ProductCode__c;

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

//...

关于c# - 如何将动态对象转换为类型并进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52589355/

相关文章:

c# - 如何让 XamlReader.Parse 不抛出 "property does not exist"XamlParseException?

c# - Application.UserAppDataPath 奇怪的行为

c# - 分部 View 异步加载,不加载,不报错

c# - 将 OData 转换为 sql 字符串

c# - 声明空字节 - 可空对象必须有一个值?

java - 动态设置缓冲图像的大小

javascript - 泛化 jQuery 动态添加/删除多个表单的表单输入

c# - 在一种方法中添加和删除事件,c#

r - 如何在 R 中生成转换类型表?

c# - Linq 用另一个集合的值更新一个集合?