1. 问题记录
1.1. 未找到实例框架程序
未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架提供程序。请确保在应用程序配置文件的“entityFramework”节中注册了该提供程序。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=260882
解决方法,在项目中添加EntityFramework.SqlServer.dll引用
2. EntityFramwork 操作Access
2.1. 注册
1 | C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config |
2.2. EntityFramework 启用迁移 Enable-Migrations 报异常 “No context type was found in the assembly”
查看get-help Enable-Migrations帮助,发现启用迁移命令带了几个参数。
Enable-Migrations [-ContextTypeName
ContextTypeName:项目继承自DBContext的类名字。
EnableAutomaticMigrations:开启自动迁移。
ProjectName:存放DBContext类的项目名称。
StartUpProjectName:解决方案中启动项目的名称,作用是调用该项目下的连接字符串。
ConnectionStringName:连接字符串名称
上面五个参数是解决问题必须的,其它的无关紧要。
例如:
1 | Enable-Migrations -ContextTypeName "DBAccessLib.TJSSDBContext" -ProjectName "DBAccessLib" -StartUpProjectName "WebSite" -ConnectionStringName "TJSSDBContext" -Verbose |
依次填好之后,问题解决。
同样的在Add-Migration、Update-Database的时候也需要填写相应的参数。否则会出现同样错误。
例如:
1 | Add-Migration -Name "EditCST_DevicePhoto" -ProjectName "DBAccessLib" -StartUpProjectName "WebSite" -ConnectionStringName "TJSSDBContext" -Verbose |
使用过程中注意去掉 script参数
2.3. Migration 数据迁移常用命令
1 | PM> Enable-Migrations -EnableAutomaticMigrations |
问题
LINQ to Entities 不支持指定的类型成员“Date”。只支持初始值设定项、实体成员和实体导航属性。
将时间字符串写在 linq 外面