C# 未首先在实体框架代码中创建字段
我有一个从基类继承的POCO类。我正在使用EF Power工具显示实体数据模型。我注意到五个属性中只有两个是从基类显示的。以下是一个例子: 基类:C# 未首先在实体框架代码中创建字段,c#,entity-framework,entity-framework-5,C#,Entity Framework,Entity Framework 5,我有一个从基类继承的POCO类。我正在使用EF Power工具显示实体数据模型。我注意到五个属性中只有两个是从基类显示的。以下是一个例子: 基类: using System; namespace App.Model { [Serializable()] public abstract class BaseEntity { public bool IsActive { get; private set; } public DateTimeO
using System;
namespace App.Model
{
[Serializable()]
public abstract class BaseEntity
{
public bool IsActive { get; private set; }
public DateTimeOffset Created { get; private set; }
public string CreatedBy { get; private set; }
public DateTimeOffset LastUpdated { get; protected set; }
public string LastUpdatedBy { get; protected set; }
private BaseEntity() { }
protected BaseEntity(DateTimeOffset created, string createdBy)
{
IsActive = true;
Created = created;
CreatedBy = createdBy;
LastUpdated = created;
LastUpdatedBy = createdBy;
}
}
}
using System;
namespace App.Model
{
[Serializable()]
public class Person : BaseEntity
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public Person(DateTimeOffset created, string createdBy) :
base(created, createdBy) { }
}
}
继承类:
using System;
namespace App.Model
{
[Serializable()]
public abstract class BaseEntity
{
public bool IsActive { get; private set; }
public DateTimeOffset Created { get; private set; }
public string CreatedBy { get; private set; }
public DateTimeOffset LastUpdated { get; protected set; }
public string LastUpdatedBy { get; protected set; }
private BaseEntity() { }
protected BaseEntity(DateTimeOffset created, string createdBy)
{
IsActive = true;
Created = created;
CreatedBy = createdBy;
LastUpdated = created;
LastUpdatedBy = createdBy;
}
}
}
using System;
namespace App.Model
{
[Serializable()]
public class Person : BaseEntity
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public Person(DateTimeOffset created, string createdBy) :
base(created, createdBy) { }
}
}
只有LastUpdated和LastUpdatedBy显示在模型中:
我认为这可能与受保护的和私有的setter有关,所以我尝试将其他三个未显示的属性设置为受保护的,然后重新运行该工具。它仍然没有创建IsActive、Created和CreatedBy字段
是什么导致了这个问题?如何使所有五个字段都显示在模型中 显而易见的。。。您是否在更改属性后重新生成?并将其更改为用于测试的
public
,没有改变任何内容?你能告诉我重建是什么意思吗?我不确定您是真的重建了项目还是进行了代码迁移
,我认为这是首先使用代码更新模型所必需的。我指的是在解决方案中重建项目。根据您的评论,我尝试了DropCreateDatabaseIfModelChanges选项,该选项与设置为protected而非private的setters一起工作。您知道如何强制使用私有setter,基本上是寻找一种拥有只读值的方法吗。我将为此创建一个新问题。