Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中为模型的属性定义默认字符串类型#_C#_Entity Framework_Model View Controller_Types_Model - Fatal编程技术网

C# 在C中为模型的属性定义默认字符串类型#

C# 在C中为模型的属性定义默认字符串类型#,c#,entity-framework,model-view-controller,types,model,C#,Entity Framework,Model View Controller,Types,Model,我有这个型号 公共类AppInfo { [必需(ErrorMessage=“Campo obrigatório”)] 公共字符串nick{get;set;} [必需(ErrorMessage=“Campo obrigatório”)] 公共字符串版本{get;set;} 公共字符串说明{get;set;} } 我想为nick属性设置默认字符串类型,就像在typescript中一样 const plant:“树”|“花” 在c#中有这样做的方法吗 若不手动设置,默认文本将为属性值 如果不手动设

我有这个型号

公共类AppInfo
{
[必需(ErrorMessage=“Campo obrigatório”)]
公共字符串nick{get;set;}
[必需(ErrorMessage=“Campo obrigatório”)]
公共字符串版本{get;set;}
公共字符串说明{get;set;}
}
我想为
nick
属性设置默认字符串类型,就像在typescript中一样

const plant:“树”|“花”
在c#中有这样做的方法吗

若不手动设置,默认文本将为属性值

如果不手动设置,默认文本将是C#中属性的值,没有“速记”方式来完成所描述的内容,就像在TypeScript中一样。为此,您必须创建一个自定义类。如果提供的字符串不在“允许”列表中,它将有1个只读字符串属性,并在构造函数中引发异常

公共类AppInfo
{
[必需(ErrorMessage=“Campo obrigatório”)]
公共植物nick{get;set;}
[必需(ErrorMessage=“Campo obrigatório”)]
公共字符串版本{get;set;}
公共字符串说明{get;set;}
}
公营工厂{
私有只读字符串[]AllowedNames={“树”,“花”};
公共字符串名称{get;}
植物(弦植物){
if(false==AllowedNames.Contains(工厂)){
抛出新的ArgumentException($“{plant}是不允许的。”);
}
这个名称=植物;
}
}
AppInfo
中,您将使用
nick.Name
访问该属性

或者,您可以直接将此逻辑添加到
AppInfo
构造函数中。虽然,如果您打算在其他实体中使用此逻辑,创建自定义类会更好。

在C#中,没有“速记”方式来完成您所描述的内容,如在TypeScript中。为此,您必须创建一个自定义类。如果提供的字符串不在“允许”列表中,它将有1个只读字符串属性,并在构造函数中引发异常

    public class AppInfo
  {
    private string _nick;
    [Required(ErrorMessage = "Campo obrigatório")]
    public string nick { get{ return _nick; } set { if(value != "Tree" && value != "Flower" ){ throw new Exception("Wrong text, fool"); } this._nick = value; } }
    [Required(ErrorMessage = "Campo obrigatório")]
    public string version { get; set; }
    public string description { get; set; }
  }
公共类AppInfo
{
[必需(ErrorMessage=“Campo obrigatório”)]
公共植物nick{get;set;}
[必需(ErrorMessage=“Campo obrigatório”)]
公共字符串版本{get;set;}
公共字符串说明{get;set;}
}
公营工厂{
私有只读字符串[]AllowedNames={“树”,“花”};
公共字符串名称{get;}
植物(弦植物){
if(false==AllowedNames.Contains(工厂)){
抛出新的ArgumentException($“{plant}是不允许的。”);
}
这个名称=植物;
}
}
AppInfo
中,您将使用
nick.Name
访问该属性

或者,您可以直接将此逻辑添加到
AppInfo
构造函数中。尽管如此,如果您打算在其他实体中使用此逻辑,创建自定义类会更好

    public class AppInfo
  {
    private string _nick;
    [Required(ErrorMessage = "Campo obrigatório")]
    public string nick { get{ return _nick; } set { if(value != "Tree" && value != "Flower" ){ throw new Exception("Wrong text, fool"); } this._nick = value; } }
    [Required(ErrorMessage = "Campo obrigatório")]
    public string version { get; set; }
    public string description { get; set; }
  }
我更新了一点。正在验证属性集中的值。 如果您试图设置obj.nick=“notFlower”,这将抛出错误

我更新了一点。正在验证属性集中的值。
如果您试图设置obj.nick=“notFlower”

,这将引发错误,但我可以说,该属性只能接收两种类型的字符串,如果接收到不在类型模式中的字符串,它会引发异常?示例:公共字符串nick{get;set;}=“默认文本”|“另一个文本”;但是我可以说这个属性只能接收两种类型的字符串,如果接收一个不在类型模式中的字符串,它会抛出一个异常?示例:公共字符串nick{get;set;}=“默认文本”|“另一个文本”;