我有一个称为产品的模型,
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);
}
}
因此,在添加到数据库之前,我想用KNDYCPQ__ProductCode__c
检查产品代码(Sku
)以避免重复,但是if条件失败并显示以下错误:表达式树可能不包含动态操作。
答案 0 :(得分:4)
将x.KNDYCPQ__ProductCode__c
放在一个强类型变量中,并在表达式中使用它。
string sku = x.KNDYCPQ__ProductCode__c;
if (db.Products.Where(a => a.Sku == sku).FirstOrDefault() != null) {
//...