我有一个名为产品的模型,
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/