当我尝试用视图和实体框架搭建一个MVC控制器时,如下所示:
的数据
我得到这个错误:
的
这是我的DbContext
类:
namespace Infrastructure
{
public class DataContext : DbContext
{
public DataContext(DbContextOptions<DataContext> options) : base(options)
{
}
public DbSet<Owner> owners { get; set; }
public DbSet<ProtoFile> protoFiles { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Owner>().Property(x => x.Id).HasDefaultValueSql("NEWID()");
modelBuilder.Entity<ProtoFile>().Property(x => x.Id).HasDefaultValueSql("NEWID()");
modelBuilder.Entity<Owner>().HasData(
new Owner
{
Id = Guid.NewGuid(),
Avatar = "avatar.jpg",
FullName = "Mohammad AlMohammad AlMahmoud",
Profile = ".NET Full Stack Developer"
});
}
}
}
字符串
4条答案
按热度按时间tyky79it1#
我最终通过添加IDesignTimeDbContextFactory修复了它
字符串
gcuhipw92#
我通过将此代码添加到DataContext类来解决此问题
字符串
它被解决了,但生成代码后,我有一些问题,当我运行应用程序,所以我删除它和应用程序成功工作
来自Microsoft文档https://learn.microsoft.com/en-us/ef/core/dbcontext-configuration/
b4qexyjb3#
你必须把这段代码添加到你的程序类中(如果你使用net 6)
字符串
或者如果你使用的是net 5或更低版本,将其添加到启动类中。
型
并删除
型
falq053o4#
这里也有同样的问题。发现我需要将上下文类作为服务添加到Program.cs中的构建器中。在我的情况下,我使用InMemoryDatabase选项
字符串