我为一个表设计了一个抽象类
namespace Test.Data
{
[Table("Parameter")]
public abstract class Parameter
{
[StringLength(200)]
protected string title { get; set; }
protected decimal? num { get; set; }
public Int16 sts { get; set; }
}
}
并从中扩展了一些课程(TPH) 我发现当属性定义为PROTECTED时,它们不会在数据库中生成,它们应该是公共的(上面是受保护的其他sts)。但是我想从其他命名空间隐藏上述属性并为它们使用不同的名称,例如:
namespace Test.Data
{
public class Measure:Parameter
{
[NotMapped]
public string Title { get { return ttl; } set { ttl = value; } }
}
}
namsespace Test.Model
{
public class MeasureModel:Data.Measure
{
public void AddNew()
{
var m = new Data.Measure();
m.Title="meter"; //other measure's properties shouldn't accessable here
}
}
}
答案 0 :(得分:2)
一个简单的解决方案是使用访问表达式:
const
在制图中,您可以选择以下内容:
namespace Test.Data
{
[Table("Parameter")]
public partial abstract class Parameter
{
[StringLength(200)]
protected string title { get; set; }
protected decimal? num { get; set; }
public Int16 sts { get; set; }
}
}
namespace Test.Data
{
public partial abstract class Parameter
{
public class PropertyAccessExpressions
{
public static readonly Expression<Func<Parameter, string>> Title = x => x.title;
}
}
}
进一步阅读: