【发布时间】:2019-04-30 12:08:50
【问题描述】:
我想使用 POCO 类中的实体框架核心创建数据库表。当我尝试添加一个新的脚手架项目(选项:在 VS 中使用实体框架 (CRUD) 的 Razor 页面)时,出现错误提示:“没有为实体类型 'Uri' 找到合适的构造函数”
我了解到(除其他外)Uri 必须在 OnModelCreating 方法(在继承自 dbContext 的类中)中转换为字符串。
DbContext 类:
public class SchoolDbContext : DbContext {
public DbSet<Student> Students { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder) {
modelBuilder.Entity<Student>()
.Property(t => t.Homepage)
.HasConversion(
v => v.ToString(),
v => new Uri(v));
}
}
学生班:
public class Student {
public int ID { get; set; }
public Uri Homepage {get; set; }
}
我知道在输入“Add-Migration Initial”命令时会调用 OnModelCreating 方法。但由于我尝试自动实现 CRUD 类,我无法输入命令“添加迁移初始值”。 非常感谢,请原谅我糟糕的英语..
【问题讨论】:
-
尝试在
Configure方法中添加HasConversion代码here -
谢谢,但我已经尝试过了..