0

現在ログインしているユーザーのユーザー ID を取得しようとしています。これが私のコードです:

public int GetUserID(string _UserName)
    {
        using (var context = new TourBlogEntities1())
        {
            var UserID = from s in context.UserInfoes
                         where s.UserName == _UserName
                         select s.UserID;
            return  Int32.Parse(UserID.ToString()); //error is showing here

        }
    }

これを使用して、コントローラーからメソッドを呼び出しています。

public ActionResult NewPost(NewPost model)
   {
       var Business = new Business();
       var entity = new Post();
       entity.PostTitle = model.PostTitle;
       entity.PostStory = model.PostStory;
       entity.UserID = Business.GetUserID(User.Identity.Name);



       Business.NewPost(entity);
       Business.ViewPost(entity);
       return View("ViewPost", model);

   }

「入力文字列の形式が正しくありません」というエラーが表示されます。助けてください。ありがとう。

4

2 に答える 2

1
 CreatedBy = this.HttpContext.User.Identity.Name,
于 2012-10-10T09:37:44.763 に答える
1

クエリは IEnumerable を返します。単一のレコードのみを取得する必要があります。

using (var context = new TourBlogEntities1())
{
    var userIds = from s in context.UserInfoes
                 where s.UserName == _UserName
                 select s.UserID;
    return userIds.Single();
}

ちなみに、.Single()条件に一致するレコードが複数ある場合、メソッドは例外をスローします。データベース内のユーザー名フィールドに一意の制約があることを願っています。

于 2012-10-10T09:05:05.110 に答える