从性能的角度来看,检查数据库中是否存在对象的最佳方法是什么?我正在使用Entity Framework 1.0(ASP.NET 3.5 SP1).
public class PricePublicModel
{
public PricePublicModel() { }
public int PriceGroupID { get; set; }
public double Size { get; set; }
public double Size2 { get; set; }
public int[] PrintType { get; set; }
public double[] Price { get; set; }
}
List<PricePublicModel> pricePublicList = new List<PricePublicModel>();
Run Code Online (Sandbox Code Playgroud)
如何检查元素是否pricePublicList包含特定值.更确切地说,我想检查是否存在pricePublicModel.Size == 200?另外,如果这个元素存在,如何知道它是哪一个?
编辑如果字典更适合这个,那么我可以使用字典,但我需要知道如何:)
我对行的内容不感兴趣,我只想知道是否存在行.该Name列是主键,因此将有0或1个匹配的行.目前,我正在使用:
if ((from u in dc.Users where u.Name == name select u).Count() > 0)
// row exists
else
// row doesn't exist
Run Code Online (Sandbox Code Playgroud)
虽然上述工作,但通过选择行的所有内容(如果存在),它会做很多不必要的工作.以下是否创建更快的查询:
if (dc.Users.Where(u => u.Name == name).Any())
Run Code Online (Sandbox Code Playgroud)
...或者是否有更快的查询?
我正在尝试检查列表中是否存在特定对象。我有 ListA,它包含所有元素,我有一个字符串,它可能属于也可能不属于 List A 中一个对象的 id。
我知道以下几点:
List<T>.Contains(T)如果元素存在于 List 中,则返回 true。问题:我必须搜索特定的元素。
List<T>.Find(Predicate<T>)如果在 List 中找到具有谓词的元素,则返回一个对象。问题:这给了我一个对象,但我想要真或假。
现在我想出了这个:
if (ListA.Contains(ListA.Find(a => a.Id == stringID)) ==true) ...做很酷的事
这是最好的解决方案吗?对我来说似乎有点奇怪。