首页 > 解决方案 > 使用 mvc 的实体框架 - 数据注释

问题描述

我已连接到 SQL 数据库表,并且正在尝试为模型文件夹中的字符串 CountryName 创建数据注释。当它给我一个错误时在网上:

System.InvalidCastException:无法将“System.Int32”类型的对象转换为“System.String”类型。

namespace WorldEventsWeb.Models
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;

    public partial class tblCountry
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public tblCountry()
        {
            this.tblEvents = new HashSet<tblEvent>();
        }
    
        public int CountryID { get; set; }
        public string CountryName { get; set; }
        [StringLength(50)]
        public Nullable<int> ContinentID { get; set; }
    
        public virtual tblContinent tblContinent { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<tblEvent> tblEvents { get; set; }
    }
}

标签: c#asp.net-mvcentity-frameworkmodel-view-controllervisual-studio-2019

解决方案


You are setting the StringLength attribute to a property of type Nullable<int>. Hence, it tries to cast the int to string. You probably intended to put the attribute to the CountryName property as follows:

[StringLength(50)]
public string CountryName { get; set; }

public Nullable<int> ContinentID { get; set; }

推荐阅读