我有一个表'资产'和'ListView'(assetCategoriesListView)填充类别。Linq和ListView和包含
我想选择与类别选择所有资产:
Assets myAsset = dbLinqManager.db.Assets.Where(a => assetCategoriesListView.CheckedIndices.Contains(a.Category)).First();
但似乎包含不能使用。有谁知道解决方案?
我有一个表'资产'和'ListView'(assetCategoriesListView)填充类别。Linq和ListView和包含
我想选择与类别选择所有资产:
Assets myAsset = dbLinqManager.db.Assets.Where(a => assetCategoriesListView.CheckedIndices.Contains(a.Category)).First();
但似乎包含不能使用。有谁知道解决方案?
你被困在一个不合时宜的时代。 ListView类的日期从.NET 1.0开始,即泛型变得可用之前的黑暗日子。 CheckedIndices属性的类型为ListView.CheckedIndexCollection,它只实现IEnumerable,而不是IEnumerable <>。这就是为什么Contains()不起作用。
通常可以使用Cast()扩展方法修复它。但CheckedIndices包含整数,而不是对象。 CheckedItems包含ListViewItems。您计划如何将它们映射到“资产”的方式并不明确。注重保持数据与视图分离。
您可以使用'Contains',但只能使用简单类型的列表:http://wekeroad.com/2008/02/27/creating-in-queries-with-linq-to-sql/ – mellamokb 2012-04-17 00:59:42
什么你有错误吗? – SLaks 2012-04-17 01:04:13