ado.net entity framework无法更新数据库

想向表中新增一条记录,add后,savechanges(),datagridview确实增加的数据,但是数据库里面没增加。困扰了两天不得解决,也没有报错和抛出异常用的SQ... 想向表中新增一条记录,add后,savechanges(),datagridview确实增加的数据,但是数据库里面没增加。困扰了两天不得解决,也没有报错和抛出异常用的SQL SERVER 2008 展开
 我来答
百度网友66a8d48e5
2013-04-27 · TA获得超过7687个赞
知道大有可为答主
回答量:3002
采纳率:12%
帮助的人:3902万
展开全部
楼上两位可能不懂Entity Framework!这就是大名远播的EF,据说想扔掉linq to sql的原因就是EF.

首先不管是EF还是linq to sql都是ORM,但是Linq to sql从名称上你就知道它仅仅是为了一个SQL server(只能连接SQL server),至少在设计时是这样的。

但是EF的目换就是不在乎下层数据库是谁了!如果是从sql中来的,那和连接字符串其他是连接好的。如果没有,那么他也没有进行连接——事实上你可以让EF自行生成SQL,并在EF设计中连接数据库并执行的!

从面向对象设计角度来说,EF与数据库的关系更加松散,已经消除了与数据库的藕合,也是以后多数据设计下的一种选择。但是,ORM只是ORM(对象关系映射),它只是中间的一个层,他将数据库数据映射为程序中的对象,就这么一个做用,如果你没有连接数据库的情况下,数据持久不会发生,也就是说,Datagridview得到的是ORM中间的数据,在DGV中存在并不代表已经持久到数据库,所以还是建议你从连接入手,查询相关问题。
追问
MSDN例程里面没找到还要手动连接数据库的,在savechanges()调用后还要如何连接,请给个具体的例子
追答
如果你是建立ef时,不要选择空库,即使用选择空库时在选择连接时要选定一个连接,并明文保存。如果没有明文保存时,则在SchoolContext schoolCotext = new  SchoolContext(连接字符串,一般可在配置文件);

这样你的字符串就连接上了。如果空的情况会报错。

总之必须是在运行时连接到数据库上,这是必须的。

建议你断点到SchoolContext语句上,查看该连接字符——SchoolContext.Connection即可看到连接,若不存在连接是绝对无法持久到数据库上的!你可以HI我,我教你怎么玩EF的——好象对于EF你还是新手?!
匿名用户
推荐于2017-08-29
展开全部
ado.net entity framework无法更新数据库
首先不管是EF还是linq to sql都是ORM,但是Linq to sql从名称上你就知道它仅仅是为了一个SQL server(只能连接SQL server),至少在设计时是这样的。

但是EF的目换就是不在乎下层数据库是谁了!如果是从sql中来的,那和连接字符串其他是连接好的。如果没有,那么他也没有进行连接——事实上你可以让EF自行生成SQL,并在EF设计中连接数据库并执行的!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
clack666
2013-04-27
知道答主
回答量:37
采纳率:0%
帮助的人:13.3万
展开全部
是不是没有提交,你用到事物了吗?
追问
savechanges()不就是提交了么我看MSDN上面都是savechanges()然后就写入数据库了,没用到事物
追答
把你提交DB的代码粘出来看看吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cyg17173
2013-04-27 · TA获得超过107个赞
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:107万
展开全部
代码贴出来!
更多追问追答
追问
Course course = new Course();

course.CourseID = 1;
course.Credits = 1;
course.DepartmentID = 1;
course.Title = "test2";
schoolContext.Courses.AddObject(course);
schoolContext.SaveChanges();
追答
连接字符串 贴出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式