【发布时间】:2020-07-03 08:41:26
【问题描述】:
我的模型中有属性,例如
public class Test{
public int Id{ get; set; }
public string Title { get; set; }
public DateTime? CreatedDate { get; set; }
public DateTime? ModifiedDate { get; set; }
public DateTime? DeletedDate { get; set; }
}
在这里,我正在使用这个测试类使用迁移在数据库中创建表,
现在表已成功创建,但问题是当我想使用像“Select Title from Test where Id=1”这样的存储过程进行任何操作时,当我运行这个时,我遇到了这样的错误
“所需的列 'CreatedDate' 未出现在结果中 'FromSql' 操作"
我用过
-
NotMapped 属性工作正常,但是当我添加另一个迁移时,更新数据库后 NotMapped 属性会从数据库中删除
-
还可以使用 Shadow 属性和 Ignore 等属性
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Test>().Property<DateTime?>("CreatedDate"); modelBuilder.Entity<Test>().Property<DateTime?>("ModifiedDate"); modelBuilder.Entity<Test>().Property<DateTime?>("DeletedDate"); }
也试试这个,
protected override void OnModelCreating(ModelBuilder modelBuilder) {
modelBuilder.Entity<Test>().Ignore(x => x.DeletedDate);
modelBuilder.Entity<Test>().Ignore(x => x.IsDeleted);
modelBuilder.Entity<Test>().Ignore(x => x.ModifiedDate); }
但问题还是一样,
所以问题是我想在执行数据库操作时忽略 CreateDate、ModifiedDated、DeletedDated 属性,并且在添加和更新新迁移时也不想从数据库中删除这些列。
【问题讨论】:
-
我的回答对您解决问题有帮助吗?如果是,请接受它作为答案,它将帮助遇到同样问题的其他人,如果不是,请告诉我您的问题。
标签: asp.net-core stored-procedures entity-framework-core ef-code-first