Entity framework core 如何停止EF 7将实体属性映射到列?
在EF 6中,我可以向属性添加一个Entity framework core 如何停止EF 7将实体属性映射到列?,entity-framework-core,Entity Framework Core,在EF 6中,我可以向属性添加一个NotMapped属性,这样它就不会映射到列。如何在EF 7中做到这一点?我们还没有实现数据注释。(请参阅)您应该能够使用Fluent API完成此操作 modelBuilder.Entity().Ignore(e=>e.NotMappedProperty); 再加上Ricky和bricelam的答案 有两种方法可以忽略属性: 模型上的数据注释 public class Blog { public int BlogId { get; set; }
NotMapped
属性,这样它就不会映射到列。如何在EF 7中做到这一点?我们还没有实现数据注释。(请参阅)您应该能够使用Fluent API完成此操作
modelBuilder.Entity().Ignore(e=>e.NotMappedProperty);
再加上Ricky和bricelam的答案
有两种方法可以忽略属性:
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
[NotMapped]
public DateTime LoadedFromDatabase { get; set; }
}
class MyContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>()
.Ignore(b => b.LoadedFromDatabase);
}
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public DateTime LoadedFromDatabase { get; set; }
}
class MyContext:DbContext
{
公共数据库集博客{get;set;}
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
modelBuilder.Entity()
.Ignore(b=>b.LoadedFromDatabase);
}
}
公共类博客
{
public int BlogId{get;set;}
公共字符串Url{get;set;}
从数据库{get;set;}加载的公共日期时间
}
文档可用。已获取。但是我注意到
Ignore
方法在EF7 beta 1中不可用,这没关系。谢谢。@Ricky如果Ignore不可用,你是如何修复它的?@fiso在beta 8中,它支持NotMapped
属性,所以只需在RC1中用[NotMapped]
标记实体的属性,我发现NotMapped
属性在未映射的只读属性上导致了StackOverflowException
。我不得不使用上面的Ignore()
方法来解决这个问题。