对象类型Models.ApplicationModel

时间:2019-01-31 19:43:45

标签: c# sql-server asp.net-core

出现此错误:

  

不存在来自对象类型Vue2Spa.Models.ApplicationModel的映射   到已知的托管提供程序本机类型。

     

System.Data.SqlClient.MetaType.GetMetaTypeFromValue(Type dataType,   对象值,布尔推断,布尔流(允许)   System.Data.SqlClient.SqlParameter.GetMetaTypeOnly()   System.Data.SqlClient.SqlParameter.Validate(int索引,布尔   isCommandProc)

     

System.Data.SqlClient.SqlCommand.SetUpRPCParameters(_SqlRPC rpc,int   startCount,bool inSchema,SqlParameterCollection参数)   System.Data.SqlClient.SqlCommand.BuildRPC(bool inSchema,   SqlParameterCollection参数,参考_SqlRPC rpc)

     

System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

我的AddApplication函数:

public int AddApplication(ApplicationModel item)
        {

        string SandBoxDB = configuration.GetConnectionString("SandBoxDB");
        using (SqlConnection con = new SqlConnection(SandBoxDB))
        {
            SqlCommand sqlCmd = new SqlCommand("AddApplication", con);
            sqlCmd.CommandType = CommandType.StoredProcedure;
            sqlCmd.Parameters.AddWithValue("@FirstName", item.FirstName);
            sqlCmd.Parameters.AddWithValue("@LastName", item.LastName);
            sqlCmd.Parameters.AddWithValue("@MiddleInitial", item.MiddleInitial);
            sqlCmd.Parameters.AddWithValue("@Othername", item.OtherName);
            sqlCmd.Parameters.AddWithValue("@SID", item.SID);
            sqlCmd.Parameters.AddWithValue("@DateOfBirth", item.DateOfBirth);
            sqlCmd.Parameters.AddWithValue("@PhoneNumber", item);
            sqlCmd.Parameters.AddWithValue("@Email", item.Email);
            sqlCmd.Parameters.AddWithValue("@Address", item.Address);
            sqlCmd.Parameters.AddWithValue("@City", item.City);
            sqlCmd.Parameters.AddWithValue("@State", item.State);
            sqlCmd.Parameters.AddWithValue("@Zip", item.Zip);
            sqlCmd.Parameters.AddWithValue("@PreferredCampus", item.Prefferedcampus);
            sqlCmd.Parameters.AddWithValue("@Distric", item.Distric);
            sqlCmd.Parameters.AddWithValue("@School", item.School);
            sqlCmd.Parameters.AddWithValue("@Position", item.Position);
            sqlCmd.Parameters.AddWithValue("@SubTest1", item.SubTest1);
            sqlCmd.Parameters.AddWithValue("@TestAuthority1", item.TestAuthority1);
            sqlCmd.Parameters.AddWithValue("@Score1", item.Score1);
            sqlCmd.Parameters.AddWithValue("@DateTaken1", item.Datetaken1);
            sqlCmd.Parameters.AddWithValue("@Score1", item.Score1);
            sqlCmd.Parameters.AddWithValue("@Comment1", item.Comment1);
            sqlCmd.Parameters.AddWithValue("@SubTest2", item.SubTest2);
            sqlCmd.Parameters.AddWithValue("@TestAuthority2", item.TestAuthority2);
            sqlCmd.Parameters.AddWithValue("@Score2", item.Score2);
            sqlCmd.Parameters.AddWithValue("@DateTaken2", item.Datetaken2);
            sqlCmd.Parameters.AddWithValue("@Score2", item.Score2);
            sqlCmd.Parameters.AddWithValue("@Comment2", item.Comment2);
            sqlCmd.Parameters.AddWithValue("@SubTest3", item.SubTest3);
            sqlCmd.Parameters.AddWithValue("@TestAuthority3", item.TestAuthority3);
            sqlCmd.Parameters.AddWithValue("@Score3", item.Score3);
            sqlCmd.Parameters.AddWithValue("@DateTaken3", item.Datetaken3);
            sqlCmd.Parameters.AddWithValue("@Score3", item.Score3);
            sqlCmd.Parameters.AddWithValue("@Comment3", item.Comment3);
            sqlCmd.Parameters.AddWithValue("@NinetyCredits", item.NinetyCredits);
            sqlCmd.Parameters.AddWithValue("@AA", item.AA);
            sqlCmd.Parameters.AddWithValue("@EarnedDegree", item.EarnedDegree);
            sqlCmd.Parameters.AddWithValue("@OverallGpa", item.OverallGpa);
            sqlCmd.Parameters.AddWithValue("@Education_School1", item.Education_School1);
            sqlCmd.Parameters.AddWithValue("@Education_DegreeEarned1", item.Education_DegreeEarned1);
            sqlCmd.Parameters.AddWithValue("@Education_GraduationDate1", item.Education_GraduationDate1);
            sqlCmd.Parameters.AddWithValue("@Education_Major1", item.Education_Major1);
            sqlCmd.Parameters.AddWithValue("@Education_School2", item.Education_School2);
            sqlCmd.Parameters.AddWithValue("@Education_DegreeEarned2", item.Education_DegreeEarned2);
            sqlCmd.Parameters.AddWithValue("@Education_GraduationDate2", item.Education_GraduationDate2);
            sqlCmd.Parameters.AddWithValue("@Education_Major2", item.Education_Major2);
            sqlCmd.Parameters.AddWithValue("@Education_School3", item.Education_School3);
            sqlCmd.Parameters.AddWithValue("@Education_DegreeEarned3", item.Education_DegreeEarned3);
            sqlCmd.Parameters.AddWithValue("@Education_GraduationDate3", item.Education_GraduationDate3);
            sqlCmd.Parameters.AddWithValue("@ProgramOption_K8WithP3", item.ProgramOption_K8WithP3);
            sqlCmd.Parameters.AddWithValue("@ProgramOption_K8WithK12", item.ProgramOption_K8WithK12);
            sqlCmd.Parameters.AddWithValue("@ProgramOption_K8WithP3AndK12", item.ProgramOption_K8WithP3AndK12);
            sqlCmd.Parameters.AddWithValue("@Gender", item.Gender);
            sqlCmd.Parameters.AddWithValue("@Bilingual", item.Bilingual);
            sqlCmd.Parameters.AddWithValue("@OtherLanguages", item.OtherLanguages);
            sqlCmd.Parameters.AddWithValue("@NativeEnglish", item.NativeEnglish);
            sqlCmd.Parameters.AddWithValue("@ParentsHighSchoolDiploma", item.ParentsHighSchoolDiploma);
            sqlCmd.Parameters.AddWithValue("@Ethnicity", item.Ethnicity);
            sqlCmd.Parameters.AddWithValue("@Race1", item.Race1);
            sqlCmd.Parameters.AddWithValue("@Race2", item.Race2);
            sqlCmd.Parameters.AddWithValue("@Race3", item.Race3);
            sqlCmd.Parameters.AddWithValue("@Race4", item.Race4);
            sqlCmd.Parameters.AddWithValue("@Race5", item.Race5);
            sqlCmd.Parameters.AddWithValue("@Race6", item.Race6);
            sqlCmd.Parameters.AddWithValue("@Signature", item.Signature);

            con.Open();
            sqlCmd.ExecuteNonQuery();
            con.Close();
        }
        return 1;
    }

我的控制器:

 public class ApplicationController : BaseController
{
    private ApplicationManager manager;
    public ApplicationController(IConfiguration config) : base(config)
    {
        manager = new ApplicationManager(config);
    }

    [HttpGet]
    [Route("api/[controller]")]
    public IEnumerable<ApplicationModel> Index()
    {
        return manager.GetApplication();
    }


    [HttpPost]
    [Route("api/[controller]")]
    public int Create([FromBody] ApplicationModel application)
    {
        return manager.AddApplication(application);
    }

有人建议吗?

1 个答案:

答案 0 :(得分:1)

对于“ @PhoneNumber”参数,您错误地传入了整个模型而不是属性值。问题所在的行是这一行:

sqlCmd.Parameters.AddWithValue("@PhoneNumber", item);

相反,它应该像

sqlCmd.Parameters.AddWithValue("@PhoneNumber", item.PhoneNumber); 
// Or whatever the phone number property is.