【发布时间】:2010-03-11 11:51:20
【问题描述】:
是否可以从 LINQ 选择查询中更改字段值以用于 ASP.NET MVC 应用程序?
例如,如果查询返回值为“foo”的字段,我希望它的输出为“bar”。
本质上,我希望 LINQ 创建这个 TSQL 语句:
CREATE PROCEDURE GetSpecialCaseOfMyObject (
@param varchar(10)
) AS
SELECT
REPLACE( FieldA, 'foo', @param ) [FieldA]
FieldB,
FieldC
FROM
MyTable
WHERE
FieldA = @param
我已经做到了这一点,并且它正在构建,但是......
public IQueryable<MyObject> GetSpecialCaseOfMyObject (string myParam)
{
var result = from o in Context.MyObject
where o.FieldA = myParam
select new MyObject
{
FieldA = o.FieldA.Replace("foo", myParam),
FieldB = o.FieldB,
FieldC = o.FieldC
};
return result;
}
...当我尝试运行视图以从中返回数据时,我得到一个黄屏死机:
不允许在查询中显式构造实体类型“Model.DataAccess.MyObject”。
我尝试使用匿名类型,但无法将其转换回 MyObject。
我想要做的事情是否可能而不用经历各种麻烦?
【问题讨论】:
标签: asp.net-mvc linq linq-to-sql