以下一个存储过程:

CREATE PROCEDURE dbo.sp1
AS

 SELECT 'abc'

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

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

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

posted on 2008-01-17 08:49  夏狼哉  阅读(525)  评论(0编辑  收藏  举报