g_b*_*g_b 41 entity-framework entity-framework-core
我有这个示例代码:
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();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在MS网站上测试了一些例子,但我找不到ToTable方法.在这个例子中,我检查了什么是Usings,唯一使用的例子是Microsoft.EntityFrameworkCore,除了他正在使用的模型的类项目.这改变了吗?我现在该怎么办?
对于 EFCore 3.1,我需要在数据库上下文中使用它:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
foreach (IMutableEntityType entity in modelBuilder.Model.GetEntityTypes())
{
entity.SetTableName("WS_" + entity.GetTableName());
}
}
Run Code Online (Sandbox Code Playgroud)
不需要额外的 Nuget 包。
伊万和马尔多克斯是正确的。
我试图只是安装Microsoft.EntityFrameworkCore.Tools 然后出现此错误:
检测到的包降级:Microsoft.EntityFrameworkCore从2.1.4降到2.1.1。直接从项目中引用包以选择其他版本。-> 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.Relational ,现在可以解决了我有这个问题,但不需要安装:
Microsoft.EntityFrameworkCore.Relational
Run Code Online (Sandbox Code Playgroud)
我只是退出VS 2017并重新打开我的解决方案.我安装了以下NuGet包:
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Tools
Run Code Online (Sandbox Code Playgroud)
以下CLI工具参考:
Microsoft.EntityFrameworkCore.Tools.DotNet
Run Code Online (Sandbox Code Playgroud)
从 EF6 移植到 EFCore,我们遇到了这个问题。我们的原因.HasKey现在是返回 aKeyBuilder并且.ToTable不对其进行操作。所以逆转是有效的。
IE。曾是:
mp.HasKey(m => m.Id)
.ToTable("Table")
Run Code Online (Sandbox Code Playgroud)
变成:
mp.ToTable("Table")
.HasKey(m => m.Id);
Run Code Online (Sandbox Code Playgroud)
小智 5
安装
Microsoft.EntityFrameworkCore,MicrosoftEntityFramworkCore.Tools,最后Microsoft.EntityFrameworkCore.SqlServer小智 5
对于 net core 3.1,需要安装这些包:
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Relational
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22087 次 |
| 最近记录: |