How not persist property EF4 code first?

How do I make non persisted properties using codefirst EF4?

MS says there is a StoreIgnore Attribute, but I cannot find it.

http://blogs.msdn.com/b/efdesign/archive/2010/03/30/data-annotations-in-the-entity-framework-and-code-first.aspx

Is there a way to set this up using EntityConfiguration?


在EF Code-First CTP5中,您可以使用[NotMapped]注释。

using System.ComponentModel.DataAnnotations;
public class Song
{
    public int Id { get; set; }
    public string Title { get; set; }

    [NotMapped]
    public int Track { get; set; }

Currently, I know of two ways to do it.

  • Add the 'dynamic' keyword to the property, which stops the mapper persisting it:

    private Gender gender;
    public dynamic Gender
    {
        get { return gender; }
        set { gender = value; }
    }
    
  • Override OnModelCreating in DBContext and remap the whole type, omitting the properties you don't want to persist:

    protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<Person>().MapSingleType(p => new { p.FirstName, ... });
    }         
    
  • Using method 2, if the EF team introduce Ignore, you will be able to easily change the code to:

         modelBuilder.Entity<Person>().Property(p => p.IgnoreThis).Ignore();
    

    I'm not sure if this is available yet.

    On this MSDN page the Ignore Attribute and API are described but below, in the comments, somebody writes on 4 june 2010:

    You will be able to ignore properties in the next Code First release,

    链接地址: http://www.djcxy.com/p/90196.html

    上一篇: ef4地图模型定义的函数属性

    下一篇: 如何不坚持财产EF4代码第一?