asp.net core MVC,运行起来以后到ef的Model.Context.cs文件创建ef实例Entities时报错,发现没有在config加连接字符串,然而core没有app.config,只有appsettings.json文件,添加一个ConnectionStrings即可,如下
{ "ConnectionStrings": { "Default": "Data Source = 127.0.0.1;Initial Catalog = DbName; User ID = id;Password =pass;" }, "Logging": { "LogLevel": { "Default": "Warning" } }, "AllowedHosts": "*" }
加了以后还是报错,报错信息如下:
发现没有添加entityframework引用,在依赖性-管理nuget程序包添加了引用后,新建ef实体正常,然后在entity.Table.Add(table)时报错了,错误信息如下:
按文末链接的添加配置文件类1的方法(增加一个配置文件类)没有用,然后 从文末链接调到微软官方文档,然而看不懂,按官方文档的
services.AddDbContext<MvcMovieContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MvcMovieContext")));
然后AddDbContext
报错(cs1061:'"IServiceCollection"未包含"AddDbContext"的定义'),添加了entityframeworkcore引用,添加完efcore引用后,UseSqlServer又
报错("DbContextOptionsBuilder"未包含"UseSqlServer"的定义),又加了entityframeworkcore.sqlserver引用和页面using Microsoft.EntityFrameworkCore;,然而AddDbContext<Entities>又开始报错了(CS0311 类型“TestModel.Entities”不能用作泛型类型或方法“EntityFrameworkServiceCollectionExtensions.AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)”中的类型参数“TContext”。没有从“TestModel.Entities”到“Microsoft.EntityFrameworkCore.DbContext”的隐式引用转换)
-_-|||(不知道是不是因为ef的model项目用的entityframework,也在项目引用了entityframework的缘故)
新建了一个ef core的项目,在程序中引用后保存可以成功了,ef core写法和ef不太一样,context.Add(table)直接add就添加了。
总结:asp.net core中引用ef项目失败,改成引用ef core项目成功
参考:连接字符串:https://www.cnblogs.com/MrHSR/p/10364918.html
添加配置文件类1:https://www.cnblogs.com/Linky008/p/11116981.html
虽然没用过,但连接数据库离线文件长见识了:https://www.cnblogs.com/chonghanyu/p/5709780.html