实体框架-使用数据注释的属性的默认值

本文关键字:注释 属性 默认值 数据 框架 实体 | 更新日期: 2023-09-27 17:58:32

我有一个类似的模型

public class MyModel
{
    public int MyModelId { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public string Title { get; set; }
}

我想知道是否有一种方法,使用数据注释,将一个属性的值(比如Title)设置为其他属性值(即Name)的默认值。类似于:

if(MyModel.Title == "") MyModel.Title = MyModel.Name;

实体框架-使用数据注释的属性的默认值

如果您想要默认值,请在实体默认(无参数)构造函数中设置它。对于可以直接执行的操作,不需要有数据注释。

您可以通过在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

  1. 右键单击edmx文件,使用XML(文本)编辑器打开

2.Ctrl+F属性名称,然后只更改属性

我不知道有没有一种方法可以处理数据注释。

通常不可能将属性参数设置为函数,您会得到一个错误:

"属性参数必须是属性参数类型"的常量表达式、typeof表达式或数组创建表达式