前段时间改用core框架,粗略看了下,因为用了成熟的框架,所以工作上是直接上手写代码,.net core一知半解。
今儿突然兴起开始看看微软文档啥的,刚看的入门,看着例子简单本来觉得上手一遍直接带过,结果被狠狠打脸。。。
一个简单入门例子地址
结果一边下来F5,直接捕获了个异常:
感觉很奇怪,按照教程说法不应该是对象不存在直接创建吗,百度了吧说是字符串配置错误啥的。
因为我连接字符串指向的是本地的一个库,调用 context.Database.EnsureCreated()时返回的时false,这其实是找到数据库了。
但是调用到context.Students.Any()就嗝屁了
看看数据库,也没啥啊
就一个Test库里有一张Test表,当时随便起了个名字
于是我该链接字符串,改个没有的库F5,成功了。。。然后我就怀疑是不是库名和表名捣的鬼。
我删了Test表,字符串还是改成Test数据库 F5 顺利通过。。。。艹
折腾半天原来是表名和数据库名字一样(如下更正原因↓↓↓↓)出的错,跑完后,表成功创建,于是我又把Test表建起来了,F5 跑到context.Students.Any()时却是没有报错,返回了true。
更正上述错误:context.Database.EnsureCreated() 创建表的时候试了下会有如下情况:
- 有库没有表 返回:true 创建新表
- 有库有表 返回:false 未做任何操作
- 无库 返回:true 创建新库新表
由于有库有表(非Student表) 并未做任何事情,所以Student表并未找到 所以执行到 context.Students.Any() 时报错
所以啊,还是要严谨!慎重!