2010-07-28 40 views
2

目前,我有一组存储过程被调用来填充页面上的不同字段。我正在调用LINQ to SQL类的存储过程,我放弃了它们,这很好。但是,它会自动生成(StoredProcedureName)结果类名称,我必须使用它。ASP.NET MVC从存储过程绑定的部分模型

无论如何要采取一个存储过程并将结果绑定到多个类?例如,我有一个获取博客帖子信息的存储过程。我想将这些数据绑定到Post类和User类(对于作者),但是我没有从存储过程中检索所有数据来填充整个Post对象或User对象(存储过程只返回标题,内容和作者姓名)。

处理这种情况的最佳方法是什么?我打开更改存储过程,但我宁愿不必返回数据,我不打算只用来填充完整的对象,我不能使用LINQ to SQL来查询数据库。

+0

实例可以请发表您的存储过程的代码? – 2010-07-28 18:54:29

+0

所以你想绑定,但不想拉取绑定所需的数据。有些事情必须给:)而且,我会问自己是否真的有必要。这听起来像你的DAL存储在特效中,所以界面是特效的参数/返回值,而不是你的域对象。 – 2010-07-28 19:04:40

+0

的确,我只是觉得有一个标准模型可以更直接地映射到表结构,因此对象的名称会更有意义。所以即使他们不会被访问,那么这些模型就没有办法让一个模型被绑定,而忽略了一些字段? – Jimmy 2010-07-28 19:11:00

回答

1

可以创建一个局部您的DataContext的和编写返回IMultipleResults,带有[与resultType(typeof运算(类名))],如下所示结合到每个相应的类的方法:

http://msdn.microsoft.com/en-us/library/bb399371.aspx

或者,你可以存储的存储过程中的变量目标类的结果,然后LINQ - 选择新的情况是这样的:

var result = dataContext.your_stored_proc(); 

var post = result.Select(s => new Post { Id = result.Id, Title = result.Title });