ASP.NET CORE Shadow Properties

2018-01-26 10:30:32来源:oschina作者:donald121人点击

分享

Shadow properties are properties that are not defined in your .NET entity class but are defined for that entity type in the EF Core model. The value and state of these properties is maintained purely in the Change Tracker.


Shadow properties are useful when there is data in the database that should not be exposed on the mapped entity types. They are most often used for foreign key properties, where the relationship between two entities is represented by a foreign key value in the database, but the relationship is managed on the entity types using navigation properties between the entity types.


https://docs.microsoft.com/en-us/ef/core/modeling/shadow-properties


For example, the following code listing will result in aBlogIdshadow property being introduced to thePostentity.


class MyContext : DbContext
{
public DbSet Blogs { get; set; }
public DbSet Posts { get; set; }
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public List Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public Blog Blog { get; set; }
}

If the name supplied to thePropertymethod matches the name of an existing property (a shadow property or one defined on the entity class), then the code will configure that existing property rather than introducing a new shadow property.


class MyContext : DbContext
{
public DbSet Blogs { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity()
.Property("LastUpdated");
}
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
}

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台