.NET Core 使用 EF 出錯的解決方法


在.NET Core 項目鍾(類庫),使用Entity Framework,建立模型生成數據庫時,失敗

Could not load assembly 'xxx'. Ensure it is referenced by the startup project 'xxx'.

改成 64 位即可

假設 ef 代碼

public class ApplicationDbContext : IdentityDbContext<User>

{

    public ApplicationDbContext(DbContextOptions options)
    : base(options)
    {
    }

    public virtual DbSet<User> Users { get; set; }
    public virtual DbSet<Role> Roles { get; set; }
    public virtual DbSet<Group> Groups { get; set; }
    public virtual DbSet<GroupRole> GroupRoles { get; set; }
    public virtual DbSet<Log> Logs { get; set; }
    public virtual DbSet<LogDetail> LogDetails { get; set; }



    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    => optionsBuilder.UseSqlServer(
        @"Data Source=.;Initial Catalog=DotNetCore;Persist Security Info=True;User ID=sa;Password=25423456;");

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {

        modelBuilder.Entity<User>()
                     .HasOne(d => d.Group)
                     .WithMany(t => t.Users)
                     .HasForeignKey(d => d.GroupId)
                     .OnDelete(DeleteBehavior.Cascade);

    }


} 

 

改成 64位的方法,不要在 VS 上面改,要到 項目目錄下更改 csproj 文件

 

ps

有了模型后,即可通過遷移創建數據庫。
運行 dotnet ef migrations add InitialCreate 以為遷移搭建基架,並為模型創建一組初始表。
運行 dotnet ef database update 以將新遷移應用到數據庫。 在應用遷移之前,此命令可創建數據庫。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM