Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I stop EF 7 mapping an entity property to a column?

In EF 6, I can add a NotMapped attribute to the property, then it will not be mapped to a column. How can I do this in EF 7?

like image 202
Ricky Avatar asked Dec 18 '14 07:12

Ricky


Video Answer


2 Answers

We haven't implemented data annotations yet. (See #107) You should be able to do it using the Fluent API.

modelBuilder.Entity<MyEntity>().Ignore(e => e.NotMappedProperty);
like image 84
bricelam Avatar answered Nov 01 '22 11:11

bricelam


Just to add on to Ricky and bricelam's answer,

There are two ways to ignore a property:

  1. Data annotations on model

    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }
    
        [NotMapped]
        public DateTime LoadedFromDatabase { get; set; }
    }
    
  2. Fluent API overriding OnModelCreating

    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; }
     }
    

Documentation available here.

like image 29
Chris Voon Avatar answered Nov 01 '22 12:11

Chris Voon