每种类型的实体框架表映射继承的属性属性

时间:2015-04-04 18:29:36

标签: c# entity-framework

我在EF中创建了一个模型,其中包含有关网站中将包含哪些页面的基本信息:

namespace Sapphire.Cms.Models
{
    using Sapphire.Cms.Data.Entity;
    using System;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;

    public class SiteTree
    {
        public SiteTree()
        {
            IsHomepage = false;
        }

        public virtual int SiteTreeId
        {
            get;
            set;
        }

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

        [Required]
        [Index]
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings",
            Justification = "This is a URL segment, not a complete URL.")]
        public string UrlSegment
        {
            get;
            set;
        }

        [Index]
        public bool IsHomepage
        {
            get;
            set;
        }

        public int ParentId
        {
            get;
            set;
        }
    }
}

我继承SiteTree类来创建SiteTreeHistory类,该类将用于跟踪对SiteTree所做的更改:

namespace Sapphire.Cms.Models
{
    using System;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;

    [Table("SiteTreeHistory")]
    public class SiteTreeHistory : SiteTree
    {
        public int SiteTreeHistoryId
        {
            get;
            set;
        }

        [Index]
        public override int SiteTreeId
        {
            get;
            set;
        }
    }
}

我使用每个类型属性的表[Table("SiteTreeHistory")],并且在创建表时,不会创建继承表中的属性。

我知道MapInheritedProperties方法,当调用OnModelCreating时可以调用该方法,如下所述:

但我找不到一个相同的属性,我想知道是否存在,如果不存在(因为我不太熟悉创建属性)是否可以创建一个?< / p>

0 个答案:

没有答案