私はこのサンプルコードを持っています:
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Models;
namespace MySampleNamespace
{
public class MyDbContext : DbContext
{
public MyDbContext(DbContextOptions<MyDbContext> options)
: base(options)
{
}
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
new UserMap(modelBuilder.Entity<User>());
}
public class UserMap
{
public UserMap(EntityTypeBuilder<User> entityBuilder)
{
entityBuilder.ToTable("User");
entityBuilder.Property(s => s.Username).HasMaxLength(15).IsRequired();
}
}
}
}
MSのWebサイトからいくつかの例をテストしていましたが、ToTableメソッドが見つかりません。この例では、Usingsが何であるかを確認しましたが、使用しているのは、使用しているモデルのクラスプロジェクト以外のMicrosoft.EntityFrameworkCoreだけです。これは変更されましたか?今これをどうやってやるの?
インストールMicrosoft.EntityFrameworkCore.Relational
は、Ivanが言うように正しい解決策です。
IvanとMardoxxは正しいです。
Microsoft.EntityFrameworkCore.Tools
をインストールしようとしましたが、このエラーが発生しました:
パッケージのダウングレードが検出されました:2.1.4から2.1.1へのMicrosoft.EntityFrameworkCore。プロジェクトから直接パッケージを参照して、別のバージョンを選択します。 -> Microsoft.EntityFrameworkCore.Tools 2.1.4-> Microsoft.EntityFrameworkCore.Design 2.1.4-> Microsoft.EntityFrameworkCore.Relational 2.1.4-> Microsoft.EntityFrameworkCore(> = 2.1.4)-> Microsoft.EntityFrameworkCore(> = 2.1.1)
ToTable
で動作しないMicrosoft.EntityFrameworkCore.Toolsをインストールしましたが、これが必要かどうか不明ですMicrosoft.EntityFrameworkCore.Relational
をインストールしましたが、解決しましたこの問題はありましたが、インストールする必要はありませんでした。
Microsoft.EntityFrameworkCore.Relational
VS 2017を終了して、ソリューションを再度開きました。次のNuGetパッケージをインストールしました。
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Tools
また、次のCLIツールリファレンス:
Microsoft.EntityFrameworkCore.Tools.DotNet
EF6からEFCoreに移植すると、この問題が発生しました。私たちの原因は.HasKey
がKeyBuilder
を返し、.ToTable
が動作しないことでした。それで逆になりました。
すなわち。だった:
mp.HasKey(m => m.Id)
.ToTable("Table")
なりました:
mp.ToTable("Table")
.HasKey(m => m.Id);
これはMS Sqlメソッドなので、パッケージ(nuget)Microsoft.EntityFrameworkCore.SqlServerを追加する必要があります
使用している.Net Coreバージョンに応じて。 Microsoft.EntityFrameworkCore.Tools.DotNet
は、.NetStandard> = 2.0のみをサポートします。
.Net Coreバージョンが4.6.1の場合、Microsoft.EntityFrameworkCore
を2.0.0-preview1-finalに、関連するEntityFramework DLLとともに、Visual Studio 2017を閉じて再度開きます。