我正在创建两个LinqToSQL类的ASP.NET MVC项目中工作。我还为这些模型创建了一个存储库类,并且我已经在该类中实现了一些方法,如LIST,ADD,SAVE,它们为控制器提供数据。现在在其中一个存储库类中,我使用LINQ连接添加了一些数据。如何使用LINQ创建IQueryable类型的匿名对象
private HerculesCompanyDataContext Company = new HerculesCompanyDataContext();
private HerculesMainDataContext MasterData = new HerculesMainDataContext();
public IQueryable TRFLIST()
{
var info = from trfTable in Company.TRFs
join exusrTable in MasterData.ex_users on trfTable.P_ID equals exusrTable.EXUSER
select new
{
trfTable.REQ_NO,
trfTable.REQ_DATE,
exusrTable.USER_NAME,
exusrTable.USER_LNAME,
trfTable.FROM_DT,
trfTable.TO_DT,
trfTable.DESTN,
trfTable.TRAIN,
trfTable.CAR,
trfTable.AIRPLANE,
trfTable.TAXI,
trfTable.TPURPOSE,
trfTable.STAT,
trfTable.ROUTING
};
return info;
}
现在,当我从我的控制器调用此方法时,我无法获取列表。我想知道的是,没有创建自定义数据模型类,我怎样才能返回像IQueryable这样的匿名类型的对象。并且因为这不属于任何一种数据模型,所以在视图中如何引用这个列表。
所以对于每一个复杂的查询我写我做必须从那里写一个自定义的类? – 2010-05-27 14:11:10
否。起点是每个实体的不同存储库类别。你可能有1个“select”方法,你可能有8个。理想情况下,你的“select”方法至少需要一些参数来确保查询至少部分基于索引字段。有关平衡多少种方法的讨论,请参阅:http://stackoverflow.com/questions/2849873/2849944#2849944 – 2010-05-27 14:58:17