LINQ 中调用存储过程自动绑定列名

以下一个存储过程:

CREATE PROCEDURE dbo.sp1
AS

 SELECT 'abc'

在C#中:
var o=db.sp1();
GridView1.DataSource=o;
GridView1.DataBind();
会发现, 没有取到任何数据.

原因在于, SELECT 语句没有指定列名, 而LINQ 的查询必须带有列名, 但是如果这时仅仅把存储过程加个列名, 仍然取不到数据, 因为在dbDataContext 中, sp1 函数的定义已经跟原来的SELECT 绑定了, 必须把这个sp1 函数删除, 重新从数据库拖一个过来, 才来取到数据.

从这一点来说, 感觉还是有点不方便, 如果以后的技术能做到, 把表, 存储过程这些东西都自动更新, 都好了. 呵呵.

---------------------------------------------

作者:夏狼哉
博客:http://www.cnblogs.com/Moosdau

如需引用,敬请保留作者信息,谢谢

原文地址:https://www.cnblogs.com/Moosdau/p/1042260.html