0

Entity Frameworkを使用してレコードを挿入するストアドプロシージャを実行しようとしています。私は、さまざまな関連トピックに関する複数のチュートリアルや、これまでのところどのように管理しているのかを調べました。今度は、エラー(ArgumentNullReferenceException)を取得しながら、Web APIをフィドラーで消費します。Web APIとEntity Frameworkストアドプロシージャを挿入します。ArgumentNullReference例外

これは私のコードです:

ストアドプロシージャ:

ALTER PROCEDURE [dbo].[spInsUsers] 
    (@user_name nvarchar(50), 
    @first_name nvarchar(50), 
    @last_name nvarchar(50), 
    @mobile_no varchar(10), 
    @email nvarchar(50), 
    @user_pic varchar(256), 
    @strowner int, 
    @dbtstamp datetime2) 
AS 
    SET NOCOUNT OFF; 

    INSERT INTO [tbl_users] ([user_name], [first_name], [last_name], [mobile_no], [email], [user_pic], [strowner], [dbtstamp]) 
    VALUES (@user_name, @first_name, @last_name, @mobile_no, @email, @user_pic, @strowner, @dbtstamp); 

    SELECT 
     user_id, user_name, first_name, last_name, mobile_no, email, 
     user_pic, strowner, dbtstamp 
    FROM 
     tbl_users 
    WHERE 
     (user_id = SCOPE_IDENTITY()) 

ストアドプロシージャのマッピング:

enter image description here

ユーザーコントローラ:

public class UserDetails 
{ 
      public string user_name { get; set; } 
      public string first_name { get; set; } 
      public string last_name { get; set; } 
      public string mobile_no { get; set; } 
      public string email { get; set; } 
      public string user_pic { get; set; } 
      public int strowner { get; set; } 
      public DateTime dbtstamp { get; set; } 
} 

[Authorize] 
[Route("AddUser")] 
public HttpResponseMessage PostUsers([FromBody] tbl_users Users) 
{ 
    using(UsersEntities uent = new UsersEntities()) 
    { 
     uent.tbl_users.Add(Users); 
     uent.SaveChanges(); 

     var message = Request.CreateResponse(HttpStatusCode.Created, Users); 
     message.Headers.Location = new Uri(Request.RequestUri + 
     Users.user_id.ToString()); 

     return message; 
    } 
} 

エラー:

enter image description here

+0

[NullReferenceExceptionとは何ですか?それを修正するにはどうすればいいですか?](https://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix -それ) – TheGameiswar

答えて

0

はそれを手に入れました。私のJSONリクエストが間違っていました。解決済み。

以前のソリューションでは、ストアドプロシージャ自体がありませんでした。

私の最終的な解決策はこれにあります。

[Authorize] 
     [Route("Add_User")] 

     public HttpResponseMessage PostUsers1([FromBody] tbl_users Users) 
     { 
      using (var context = new UsersEntities()) 
      { 
       var response = context.spInsUsers(Users.user_name, Users.first_name, Users.last_name, Users.mobile_no, 
        Users.email, Users.user_pic, Users.strowner, DateTime.Now); 

       var message = Request.CreateResponse(HttpStatusCode.Created, Users); 
       message.Headers.Location = new Uri(Request.RequestUri + 
        response.ToString()); 

       return message; 

      } 

     } 

ありがとうございます。

関連する問題