2

コードファーストアプローチを使用して、モデルからテーブルにプロパティをマッピングすることを回避する方法について誰かに教えてもらえますか?

例:

public class Post
{
    [Key]
    public int Id { get; set; }

    [Display(Name = "Posted")]
    public DateTime Created { get; set; }

    [Display(Name = "Modified")]
    public DateTime? Modified { get; set; }

    [Required]
    [MaxLength(256)]
    public string Title { get; set; }

    [Required]
    public string Body { get; set; }

    public int? UserId { get; set; }

    public string UserName { get; set; }

    public virtual ICollection<Comment> Comments { get; set; }

    public virtual ICollection<Tag> Tags { get; set; } 
}

UserNameをテーブルにマップしないようにします。EFでは可能かどうか?

4

2 に答える 2

4

追加する

[NotMapped] 

目的のプロパティの属性:

public class Post
{
    [Key]
    public int Id { get; set; }

    [Display(Name = "Posted")]
    public DateTime Created { get; set; }

    [Display(Name = "Modified")]
    public DateTime? Modified { get; set; }

    [Required]
    [MaxLength(256)]
    public string Title { get; set; }

    [Required]
    public string Body { get; set; }

    public int? UserId { get; set; }

    [NotMapped]
    public string UserName { get; set; }

    public virtual ICollection<Comment> Comments { get; set; }

    public virtual ICollection<Tag> Tags { get; set; } 
}
于 2012-09-09T08:03:32.140 に答える
3

最初のコードで、DbContext派生クラスのOnModelCreatingメソッドをオーバーライドします。

protected override void OnModelCreating(ModelBuilder modelBuilder)
{   
    base.OnModelCreating(modelBuilder);

    modelBuilder.Entity<Post>().Ignore(p => p.UserName);
}
于 2012-09-09T08:05:12.217 に答える