【问题标题】:Entity Framework Core in Full .Net?完整.Net中的实体框架核心?
【发布时间】:2016-11-21 09:20:37
【问题描述】:

有没有办法在完整的 .Net Framework 控制台应用程序中实现 Entity Framework Core?

【问题讨论】:

标签: .net entity-framework-core


【解决方案1】:

首先您需要使用完整的 .net 框架创建控制台应用程序, 其次使用包管理器控制台安装这些包,

Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools –Pre

现在您需要创建模型和上下文

namespace ConsoleEfCore
{
    class Program
    {
        static void Main(string[] args)
        {
            MyContext db = new MyContext();
            db.Users.Add(new User { Name = "Ali" });
            db.SaveChanges();
        }
    }
    public class MyContext : DbContext
    {
        public DbSet<User> Users { get; set; }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(@"Server=.;Database=TestDb;Trusted_Connection=True;");
        }
    }
    public class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

那么只需要使用这个命令

Add-Migration initial

然后你需要更新你的数据库来创建它

Update-Database

运行项目,我们会看到用户将插入到您的数据库中

【讨论】:

  • 它对我不起作用。安装包。我收到了这个错误:Could not install package 'Microsoft.EntityFrameworkCore.SqlServer 2.1.0'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.6', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
  • 看来Microsoft.EntityFrameworkCore.SqlServer 1.1.5或更低版本支持.NET 4.5+,但不支持EF 2.0.0+。
  • 在示例代码中,连接字符串是硬编码的。有没有办法在创建迁移时指示 EFCore 从配置文件中读取?
  • EF-Core 3x 基于 .NET Standard 2.0 编译,兼容 .NET 4.8。但是 EF-Core 5x 是基于 .NET Standard 2.1 编译的,它不再与 .NET 4x 兼容:github.com/dotnet/standard/issues/859
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-14
  • 1970-01-01
  • 1970-01-01
  • 2018-06-27
  • 2020-01-18
相关资源
最近更新 更多