我有这样的模型
public class MyModel
{
public int MyModelId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Title { get; set; }
}
我想知道是否有一种方法,使用数据注释,设置属性的值 - 比如标题 - 默认为其他属性值,即名称。类似的东西:
if(MyModel.Title == "") MyModel.Title = MyModel.Name;
答案 0 :(得分:10)
如果您想要默认值,请在实体默认(无参数)构造函数中设置它。您无需直接进行数据注释。
答案 1 :(得分:4)
你可以告诉实体框架,数据库将通过在edmx文件的SSDL中编辑该属性来处理该属性。
首先
<Property Name="CompanyName" Type="nvarchar" Nullable="false" MaxLength="40" />
我们已将其更改为
<Property Name="CompanyName" Type="nvarchar" Nullable="false" MaxLength="40" StoreGeneratedPattern="Computed" />
通过设置storeGeneratedPattern =“Computed”,我们可以告诉EF,DB将插入属性值。
编辑SSDL
2.Ctrl + F属性的名称,只需更改该属性
我不知道有没有办法处理数据注释。
答案 2 :(得分:0)
一般情况下,将属性参数设置为函数是不可能的,您将收到错误:
“属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式”