我有一個情景:
例如
我有這個
var resultSet;
現在,我需要將這個分配給多個LINQ-SQL結果,如
。if(somecondition)
{
resultSet= (from t1 in table1 where t1. id= 1 select new CustomClass {name='test1' /span>)
}
if(anotherCondition)
{
resultSet = (from t2 in table2 where t2. id= 1 select new CustomClass {name='test2' /span>})
}
resultSet= resultSet.OrderByDescending(d => d.Id)
.ToArray()
var count= resultSet.Count()。
但問題是,如果我采取resultSet全域,那么它不作業,如果我分配NULL,它不會作業,因為它不能被分配到null,如果我分配它的東西,如var resultSet= new Object(),那么函式,即.count(),orderby等將不作業。
我應該做什么?
我需要為不同的dbcontext表使用相同的變數,但要有相同的類。
uj5u.com熱心網友回復:
你需要將resultSet定義為IEnumerable<CustomClass>/code>
IEnumerable<CustomClass> resultSet = null;//必須分配給某個東西。
if(somecondition)
{
resultSet= (from t1 in table1 where t1. id= 1 select new CustomClass {name='test1' /span>})
}
if(anotherCondition)
{
resultSet = (from t2 in table2 where t2. id= 1 select new CustomClass {name='test2' /span>})
}
resultSet= resultSet.OrderByDescending(d => d.Id)
.ToArray()
var count= resultSet.Count()。
你也可以選擇使用IQueryable<CustomeClass>,但是你要洗掉ToArray()部分。
uj5u.com熱心網友回復:
聽起來你想要的是在填充結果集的代碼之外的范圍:
例如,public class SomeClass
{
public IEnumerable<CustomClass> ResultSet { get; private set; } = new List< CustomClass> ();
//Pseudo: values and conditions are just indicative of logic.
public void SomeMethod(someValue, someOtherValue)
{
IQueryable<CustomClass> resultSet = null;
if(somecondition)
resultSet = (from t1 in table1 where t1. id= 1 select new CustomClass {name='test1'})。)
else if(otherCondition)
resultSet = (from t2 in table2 where t2. id= 1 select new CustomClass {name='test2'})。)
else
throw new ArgumentException("無效的條件組合。") 。
ResultSet = resultSet.OrderByDescending(d => d.Id)
.ToArray()。
var count= resultSet.Count。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/309865.html
標籤:
