我在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>